Ich habe ein Problem bei der HTTP-Authentifizierung. Ich konnte den Inhalt dieser URL nicht abrufen, da sie http-Auth benötigt.php curl - Zugriff auf URL mit HTTP-Authentifizierung (brauche Hilfe)
Code:
<?php
$url = "http://www.abcdefg.com/12345/";
$username = 'username';
$password = 'password';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$out = curl_exec($ch);
print "error:" . curl_error($ch) . "<br />";
print "output:" . $out . "<br /><br />";
curl_close($ch);
?>
Das Problem ist: Anstatt den wirklichen Inhalt zeigen, es zeigt "302 gefunden, das Dokument hier bewegt hat."
Ich habe versucht "http: // username: [email protected]/12345/", funktioniert nicht.
Wenn Sie auf diese URL (1) zugreifen, werden Sie in einem Popup-Fenster nach Benutzername und Passwort gefragt. Das Popup-Fenster stammt jedoch von einer anderen URL (2) (einem SSO-Authentifizierungsserver). wenn die Authentifizierung bestanden wird. dann kommt es wieder zu url (1). Zu diesem Zeitpunkt kann ich auf den Inhalt dieser URL zugreifen (1).
Ich benutze firebug die folgende Meldung zu erhalten, indem Sie die URL direkt vom Browser Zugriff:
Schritt 1
URL: GET http://www.abcdefg.com/12345/
Status: 302 Found
Protocol: http
Schritt 2
URL: GET https://www.ssoauth.com/obrareq.cgi?wh=xxx wu=xxx wo=xxx rh=http://www.abcdefg.com ru=/12345/
Status: 302 Redirect
Protocol: https
Schritt 3
URL: GET http://www.abcdefg.com/obrar.cgi?cookie=xxxxxxxxxxxxxxx
Status: 302 Found
Protocol: http
Schritt 4
URL: GET http://www.abcdefg.com/12345/
Status: 200 OK
Protocol: http
Dann den Inhalt anzuzeigen ...
Ist das etwas mit dem Cookie zu tun? Wie kann ich mit php curl den Inhalt lesen?
Habe ich nur noch curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, true) aber es zeigt line "Fehler 32 in Zeile analysieren" 32: curl_setopt ($ ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); Muss ich zu https gehörende etw hinzufügen? Cuz in ** Schritt 2 **, es verwenden https mit Port 443. – Strong
Ich habe das '' 'am Ende der Zeile vergessen! –
opps, verpasste die ";" ... – Strong