So erhalten Sie Informationen zur gesendeten PHP-Curl-Anfrage

Ich versuche zu Debuggen, eine curl-Anfrage an einen webservice 'getToken' Endpunkt.

Bin ich mir nicht 100% sicher, dass die URL und den auth-info wird immer geschrieben, in der curl-handle korrekt.

Ich versuche zu verwenden curl_getinfo($ch, CURLINFO_HEADER_OUT); zur Erfassung der Anfrage gesendet, aber es tut nicht geben mir viel info. Gibt es einen Weg, um mehr in die Tiefe Diagnose über das, was den eigentlichen curl-Anfrage aussieht?

Hier der code:

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");       
curl_setopt($ch, CURLOPT_HEADER, 1); //just getting header to see if we got an auth token
curl_setopt($ch, CURLOPT_FILE, $fh);
curl_setopt($ch, CURLOPT_NOBODY, 1); 
curl_setopt($ch, CURLINFO_HEADER_OUT, 1); //capture the header info
curl_setopt($ch, CURLOPT_VERBOSE, 1); //turn verbose on    
//execute the curl request 

$rh = fopen("request.txt", "w"); //open request file handle
$verbose = fopen('php://temp', 'rw+');
curl_setopt($ch, CURLOPT_STDERR, $verbose);

curl_exec($ch); //execute request

$sent_request = curl_getinfo($ch, CURLINFO_HEADER_OUT);
fwrite($rh, $sent_request); //save the request info
fclose($rh);
!rewind($verbose);
$verboseLog = stream_get_contents($verbose);

echo "Verbose information:\n<pre>", htmlspecialchars($verboseLog), "</pre>\n";

Dies alles funktioniert so weit wie es geht, aber ein 401 zurück jedes mal, wenn-- die API-admin hat mir versichert, dass der Benutzername /Passwort habe ich korrekt ist.

Wurde ich gefragt, ob ich irgendwie immer den URL-Wert, der falsch ist, oder nicht, dass Sie die richtigen Benutzernamen /Passwort, aber diese info ist nicht gedruckt, in der Daten gespeichert:

HEAD /export/auth HTTP/1.1
Authorization: Basic Y2FpcmRzdW5mYTpENWlAaVM4cw==
Host: webservices.mycompany.com
Accept: */*

Können Sie sehen, dass der Benutzername/Passwort ist nicht gespeichert (ich nehme an aus Sicherheitsgründen). Die Endpunkt-URL, die ich denke, ist das host Wert plus den start der HEAD Wert, so webservices.mycompany.com/export/auth?

Die "Ausführliche Informationen" - Anweisung druckt nichts. Nicht sicher, warum auf diesem entweder!

Danke für die Hilfe.

EDIT: Hinzugefügt verbose-Modus aus Php - Debugging-Curl Dank Kommentator immulatin

InformationsquelleAutor der Frage user101289 | 2013-06-13

Schreibe einen Kommentar