Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung verschiedener Möglichkeiten zum Senden von HTTP-Anfragen in PHP

Detaillierte Erläuterung verschiedener Möglichkeiten zum Senden von HTTP-Anfragen in PHP

黄舟
黄舟Original
2017-07-26 14:59:283170Durchsuche

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(&#39;http&#39; =>
           array(
             &#39;method&#39; => &#39;POST&#39;,
             &#39;header&#39; => &#39;Content-type: application/x-www-form-urlencoded&#39;,
             &#39;content&#39; => $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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn