In diesem Artikel werden hauptsächlich verschiedene Arten des Sendens von HTTP-Anfragen durch PHP vorgestellt und erläutert, wie PHP zusätzlich zur Verwendung von cURL HTTP-Anfragen sendet. Interessierte können mehr darüber erfahren.
In der PHP-Entwicklung verwenden wir häufig cURL, um HTTP-Anfragen zu kapseln. Was ist cURL?
cURL ist ein Tool zum Übertragen von Daten und unterstützt mehrere Protokolle. Sie können beispielsweise die Curl-Befehlszeile unter Linux verwenden, um verschiedene HTTP-Anfragen zu senden. cURL von PHP ist eine Low-Level-Bibliothek, die über verschiedene Protokolle mit verschiedenen Servern kommunizieren kann, und das HTTP-Protokoll ist eines davon.
Im modernen PHP-Entwicklungsframework wird häufig ein Paket namens GuzzleHttp verwendet. Es ist ein HTTP-Client und kann auch zum Senden verschiedener HTTP-Anfragen verwendet werden. Warum? ist es anders?
Benötigt Guzzle cURL?
No. Guzzle can use any HTTP handler to send requests. This means that Guzzle can be used with cURL, PHP's stream wrapper, sockets, and non-blocking libraries like React. You just need to configure an HTTP handler to use a different method of sending requests.
Dies ist eine Frage in den häufig gestellten Fragen zum GuzzleHttp-Dokument. Es ist ersichtlich, dass GuzzleHttp nicht auf die cURL-Bibliothek angewiesen ist. Unterstützt jedoch eine Vielzahl von HTTP-Anforderungsmethoden zum Senden.
Wie PHP HTTP-Anfragen sendet
Hier finden Sie eine Zusammenfassung der Arten, wie PHP neben der Verwendung von cURL auch HTTP-Anfragen sendet.
1.cURL
2.stream-Methode
stream_context_create Funktion: Erstellen Sie Text-Stream-Daten und geben Sie sie zurück und wenden Sie verschiedene Optionen an, die für Timeout-Einstellungen von fopen(), file_get_contents() und anderen Prozessen, Proxyservern, Anforderungsmethoden und speziellen Prozessen der Header-Informationseinstellungen verwendet werden können.
Nehmen Sie als Beispiel eine POST-Anfrage:
PHP
<?php /** * Created by PhpStorm. * User: tanteng * Date: 2017/7/22 * Time: 13:48 */ function post($url, $data) { $postdata = http_build_query( $data ); $opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata ) ); $context = stream_context_create($opts); $result = file_get_contents($url, false, $context); return $result; }
3. socket-Methode
Verwenden Sie Socket, um eine Verbindung herzustellen, und verbinden Sie HTTP-Pakete, um Daten für HTTP-Anfragen zu senden.
Ein Beispiel für die GET-Methode:
PHP
<?php $fp = fsockopen("www.example.com", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: www.example.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } ?>
In diesem Artikel wird beschrieben, wie HTTP gesendet wird Anfragen auf verschiedene Arten.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung verschiedener Möglichkeiten zum Senden von HTTP-Anfragen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!