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. Mithilfe der Curl-Befehlszeile unter Linux können beispielsweise verschiedene HTTP-Anfragen gesendet werden. cURL von PHP ist eine Low-Level-Bibliothek, die über verschiedene Protokolle mit verschiedenen Servern kommunizieren kann, und das HTTP-Protokoll ist eines davon. In diesem Artikel werden hauptsächlich verschiedene Möglichkeiten für PHP zum Senden von HTTP-Anfragen vorgestellt. Neben der Verwendung von cURL kann PHP auch HTTP-Anfragen senden. Ich hoffe, es hilft allen.
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 hängt es mit cURL zusammen? ist es anders?
Benötigt Guzzle cURL?
Nein. Guzzle kann jeden HTTP-Handler zum Senden von Anfragen verwenden. Dies bedeutet, dass Guzzle mit cURL, dem Stream-Wrapper, Sockets verwendet werden kann und nicht blockierende Bibliotheken wie React. Sie müssen lediglich einen HTTP-Handler konfigurieren, um eine andere Methode zum Senden von Anforderungen zu verwenden.
Dies ist eine Frage in den häufig gestellten Fragen zur GuzzleHttp-Dokumentation. Es ist ersichtlich, dass GuzzleHttp dies nicht tut Verlassen Sie sich auf die cURL-Bibliothek und unterstützen Sie mehrere Möglichkeiten zum Senden von HTTP-Anfragen.
Wie PHP HTTP-Anfragen sendet
Hier finden Sie eine Zusammenfassung der Arten, wie PHP neben der Verwendung von cURL HTTP-Anfragen sendet.
1.cURL
Detaillierte Methode: http://www.jb51.net/article/56492.htm
2. Stream-Methode
stream_context_create Funktion: Erstellen Sie einen Textdatenstrom, geben Sie ihn zurück und wenden Sie verschiedene Optionen an, die für Timeout-Einstellungen, Proxyserver, Anforderungsmethoden usw. in fopen(), file_get_contents() verwendet werden können und andere Prozesse. Ein spezieller Prozess zum Festlegen von Header-Informationen.
Nehmen Sie eine POST-Anfrage als Beispiel:
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; }
Einführungsartikel über PHP-Stream :http://www.jb51.net/article/68891.htm
3.socket-Methode
Verwenden Sie einen Socket, um eine Verbindung herzustellen und HTTP-Nachrichten zu verbinden send Eine HTTP-Anfrage für Daten stellen.
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.
Verwandte Empfehlungen:
Detaillierte Erklärung, wie PHP Socket zum Senden von HTTP-Anfragen verwendet
So senden Sie PHP über http-Anfragen Array-Beispielfreigabe
Detaillierte Erklärung und Beispielcode der HTTP-Anfragekapselung des WeChat-Applets
Das obige ist der detaillierte Inhalt vonTeilen Sie verschiedene Möglichkeiten zum Senden von HTTP-Anfragen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!