Bei der Verwendung von PHP für HTTP -Anforderungen ist Curl ein sehr häufiges Tool, mit dem Entwicklern Anfragen senden und Antworten erhalten. Wenn Sie CURL zum Senden einer Anfrage verwenden und eine Antwort verarbeiten, können Sie auf ein Problem stoßen - wie können Sie den angeforderten HTTP -Statuscode erhalten, nachdem Sie Curl_Close () aufgerufen haben, um die Curl -Sitzung zu schließen?
In PHP wird Curl_Close () verwendet, um eine Curl -Sitzung zu schließen, was bedeutet, dass die Funktion alle Ressourcen im Zusammenhang mit der aktuellen Sitzung freigibt. Normalerweise werden nach dem Aufrufen von curl_close () alle Sitzungsinformationen zerstört, sodass der angeforderte HTTP -Statuscode nicht direkt abgerufen werden kann. Wir haben jedoch noch einige Möglichkeiten, den Statuscode vor oder nach dem Schließen der Sitzung zu erhalten.
Nach der Ausführung der Anforderung können Sie die Funktion curl_getInfo () verwenden, um Anforderungsinformationen einschließlich des HTTP -Statuscode zu erhalten. Diese Funktion kann ein Array zurückgeben, das mehrere Anforderungsinformationen enthält, von denen eine http_code ist, die den HTTP -Statuscode darstellt.
Vor dem Schließen der Curl -Sitzung können wir curl_getInfo () aufrufen, um den Statuscode zu erhalten. Hier ist ein Beispiel:
<?php
// Initialisierung cURL Sitzung
$ch = curl_init();
// Gesetzt angefordert URL
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/example");
// aufstellen cURL Optionen
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// implementieren cURL fragen
$response = curl_exec($ch);
// Erhalten HTTP Statuscode
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Schließung cURL Sitzung
curl_close($ch);
// Ausgabe HTTP Statuscode
echo "HTTP Statuscode是: " . $http_code;
?>
In diesem Beispiel initialisieren wir zunächst eine Curl -Sitzung mit Curl_init () , dann die Anforderungs -URL fest und führen die Anforderung aus. Als nächstes wird der HTTP -Statuscode mit Curl_getInfo () und dem Statuscode in der Variablen $ http_code gespeichert. Nach dem Ende der Sitzung rufen wir curl_close () auf, um die Curl -Sitzung zu schließen.
curl_close () schließt die aktuelle Curl -Sitzung und veröffentlicht ihre besetzten Ressourcen. Sobald curl_close () aufgerufen wurde, werden alle Statusinformationen in Bezug auf die Sitzung zerstört, sodass die angeforderten detaillierten Informationen, einschließlich des HTTP -Statuscode, nicht über die Curl -Funktion erhalten werden können.
Aus diesem Grund ist der richtige Zeitpunkt, um den HTTP -Statuscode zu erhalten, die Ausführung von curl_exec () und curl_getInfo () vor curl_close () aufzurufen. Dies stellt sicher, dass die angeforderten Statussinformationen vor dem Schließen der Sitzung abgerufen werden.
Zusätzlich zum HTTP -Statuscode kann Curl_getInfo () viele andere nützliche Informationen zurückgeben. Rückgabeinformationen wie die endgültige URL der Anfrage, die Zeit, die inhaltliche Länge usw. Hier finden Sie ein Beispiel dafür, wie Sie weitere Anforderungsinformationen erhalten:
<?php
// Initialisierung cURL Sitzung
$ch = curl_init();
// Gesetzt angefordert URL
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/example");
// aufstellen cURL Optionen
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// implementieren cURL fragen
$response = curl_exec($ch);
// Erhalten cURL fragen信息
$request_info = curl_getinfo($ch);
// Schließung cURL Sitzung
curl_close($ch);
// Ausgabefragen信息
echo "HTTP Statuscode: " . $request_info['http_code'] . "\n";
echo "fragen的 URL: " . $request_info['url'] . "\n";
echo "fragen耗时: " . $request_info['total_time'] . "Zweite\n";
?>
Über den oben genannten Code können Sie Informationen wie den HTTP -Statuscode, die endgültige Anforderungs -URL und die Gesamtanforderungszeit abrufen.
Obwohl curl_close () die Sitzung schließt und die Ressourcen befreit, können wir den HTTP -Statuscode und andere nützliche Anforderungsinformationen über curl_getInfo () erhalten, bevor wir die Sitzung schließen. Nehmen Sie daher sicher, dass Sie curl_getInfo () aufrufen, bevor Sie curl_close () aufrufen, damit der HTTP -Statuscode erfolgreich erhalten werden kann.
Ich hoffe, dass Sie in diesem Artikel besser verstehen können, wie Sie Curl verwenden, um HTTP -Statuscodes in PHP zu erhalten, und das Problem zu vermeiden, dass nach dem Schließen der Sitzung keine Informationen erhalten werden können.