Greifen Sie über HTTP auf die Daten einer Dienstsoftware des Servers zu. Der Browser öffnet das folgende Bestätigungs-Popup-Fenster:
Weil ich die PHP-Curl-Methode verwenden möchte, um Daten abzurufen, aber nicht weiß, wie ich die Parameter zur Überprüfung von Benutzername und Passwort festlegen soll:
Ich habe festgestellt, dass es nicht funktioniert:
<code>curl_setopt($curl, CURLOPT_USERPWD, "name:pwd"); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); </code>
Nachdem ich mich mit Postman angemeldet hatte, um die Anmeldung zu simulieren, habe ich im Anforderungsheader einen Eintrag gefunden:
Fügen Sie dann einen Anforderungsheader zur PHP-Curl-Methode hinzu:
<code>curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json','Authorization:Basic TnhFY29AMjAxNjojQGlIeVg0eStHUFE='));</code>
Auf diese Weise können Sie die Daten anfordern.
Das Problem besteht jedoch darin, dass diese fest codierte Überprüfung nach Ablauf erneut fehlschlägt, da das Skript auf dem Server platziert werden muss, damit es ständig ausgeführt werden kann, und keine Berechtigung vorliegt.
Wie kann ich die PHP-Curl-Benutzernamen- und Passwortparameter so einstellen, dass ich die Anmeldung immer überprüfen kann?
Greifen Sie über HTTP auf die Daten einer Dienstsoftware des Servers zu. Der Browser öffnet das folgende Bestätigungs-Popup-Fenster:
Weil ich die PHP-Curl-Methode verwenden möchte, um Daten abzurufen, aber nicht weiß, wie ich die Parameter zur Überprüfung von Benutzername und Passwort festlegen soll:
Ich habe festgestellt, dass es nicht funktioniert:
<code>curl_setopt($curl, CURLOPT_USERPWD, "name:pwd"); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); </code>
Nachdem ich mich mit Postman angemeldet hatte, um die Anmeldung zu simulieren, habe ich im Anforderungsheader einen Eintrag gefunden:
Fügen Sie dann einen Anforderungsheader zur PHP-Curl-Methode hinzu:
<code>curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json','Authorization:Basic TnhFY29AMjAxNjojQGlIeVg0eStHUFE='));</code>
Auf diese Weise können Sie die Daten anfordern.
Das Problem besteht jedoch darin, dass diese fest codierte Überprüfung nach Ablauf erneut fehlschlägt, da das Skript auf dem Server platziert werden muss, damit es ständig ausgeführt werden kann, und keine Berechtigung vorliegt.
Wie kann ich die PHP-Curl-Benutzernamen- und Passwortparameter so einstellen, dass ich die Anmeldung immer überprüfen kann?
Dies ist eine PHP-HTTP-Überprüfung, die im Allgemeinen nicht durchgeführt wird. Schließlich ist die HTTP-Überprüfung zu einfach
http://php.net/manual/zh/feat...
<code>$username='ABC'; $password='XYZ'; $URL='<URL>'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$URL); curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //get status code $result=curl_exec ($ch); curl_close ($ch);</code>
Verwenden Sie CURL, um die Anmeldung zu simulieren und das Autorisierungstoken zu erhalten
Verwenden Sie den in Schritt 1 erhaltenen Token, um die nächste Anfrage zu stellen
Das Token in Schritt 1 kann entsprechend zwischengespeichert werden, und die Cache-Zeit hängt vom Server ab.
Exkurs: Ich persönlich habe das Gefühl, dass die Serverseite von Yii2 geschrieben wurde.
Ich habe etwas Ähnliches schon einmal gemacht. Es hat lange gedauert und ich fand es zu mühsam, also habe ich es schließlich mit Phantomjs gelöst. PHP ruft das Knotenprogramm auf.
Dieses Attribut hinzufügen
<code>$user = 'hello'; $pass = '$world'; curl_setopt($ch, CURLOPT_USERPWD, "{$user}:{$pass}"); </code>