Hallo zusammen,
habe Probleme mit der Authentifizierung bei curl.
Habe folgenden Script:
$login = '"myuser":"mypasswort"';
$url = "zum-server";
$soapFunctionParameters = Array("pastdays"=>"1","format"=>"json", "page"=>"1", "per_page"=>"3");
$curl_handler = curl_init( );
// der Aufruf der Login-Seite
curl_setopt($curl_handler, CURLOPT_URL, $url );
curl_setopt($curl_handler, CURLOPT_RETURNTRANSFER, true);
// curl_setopt($curl_handler, CURLOPT_HTTPHEADER, array('Content-Type: application/xml') );
curl_setopt($curl_handler, CURLOPT_HEADER, true);
curl_setopt($curl_handler, CURLOPT_POST, true);
// hier müssen die Benutzerdaten eingetragen werden
curl_setopt($curl_handler, CURLOPT_USERPWD, $login);
// Versuch, hat leider nicht funktioniert.
// $headers = array(
// 'Content-Type:application/json',
// 'Authorization: Basic '. base64_encode( $login ) // <---
// );
// curl_setopt($curl_handler, CURLOPT_HTTPHEADER, $headers);
// Zusatzparameter
curl_setopt($curl_handler, CURLOPT_PORT , 443 );
curl_setopt($curl_handler, CURLOPT_POST, true);
curl_setopt($curl_handler, CURLOPT_POSTFIELDS, $soapFunctionParameters );
$response = curl_exec($curl_handler);
if (!curl_errno($curl_handler))
{
$info = curl_getinfo($curl_handler);
echo "<pre>info: ";
print_r( $info );
echo "</pre><hr>";
echo "<pre>response: ";
print_r( $response );
echo "</pre>";
}
else
{
echo "<pre>FHELER::curl_errno(curl_handler): ";
print_r( curl_errno($curl_handler) );
echo "</pre>";
}
curl_close($curl_handler);
Im Abschnitt „<pre>info</pre>“ sehe ich »[http_code] => 401«, also ist meine authentifizieren fehle geschlagen.
Im Abschnitt "responese" bekomme ich als einen der ersten Ausgaben folgendes "HTTP/1.1 401 Authorization Required".
Bei der Authentifizierung handelt es sich .htaccess Authentifizierung.
Kann ich das mit curl über haupt abfragen?
Wenn ich natürlich die URL mit Parametern im Browser angeben, kommt die User/Passwort abfrage, dann werden alle angeforderten Daten korrekt ausgelesen.
Hat jemand eine Idee, was an dem PHP-Script falsch ist?
Wurden falsche Parameter übergeben, oder fehlen welche?
Danke im Vorraus.
Grüße