Heim  >  Artikel  >  Backend-Entwicklung  >  Verwenden von Curl zum Senden von Anfragen (GET-Anfragen und POST-Anfragen) in PHP

Verwenden von Curl zum Senden von Anfragen (GET-Anfragen und POST-Anfragen) in PHP

高洛峰
高洛峰Original
2017-03-22 10:20:332068Durchsuche

In diesem Artikel wird hauptsächlich die Verwendung von Curl zum Senden von Anfragen (GET-Anfragen und POST-Anfragen) in PHP vorgestellt. Der Herausgeber findet es ziemlich gut, daher werde ich es jetzt mit Ihnen teilen und als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick darauf

Der grundlegende Prozess des Sendens einer Anfrage mit CURL

Die Verwendung der PHP-Erweiterung von CURL zum Abschließen des Sendens einer HTTP-Anfrage umfasst im Allgemeinen die folgenden Schritte :

1. Initialisieren Sie das Verbindungshandle.

3 🎜>

4. Geben Sie das VURL-Verbindungshandle frei.


Das folgende Programmfragment ist ein typischer Prozess der Verwendung von CURL zum Senden von HTTP


// 1. 初始化
 $ch = curl_init();
 // 2. 设置选项,包括URL
 curl_setopt($ch,CURLOPT_URL,"http://www.devdo.net");
 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
 curl_setopt($ch,CURLOPT_HEADER,0);
 // 3. 执行并获取HTML文档内容
 $output = curl_exec($ch);
 if($output === FALSE ){
 echo "CURL Error:".curl_error($ch);
 }
 // 4. 释放curl句柄
 curl_close($ch);
Wird in verwendet obiger Code Die vier Funktionen



curl_init() und curl_close() dienen zum Initialisieren bzw. Schließen der CURL-Verbindung, was beide relativ einfach ist.

  • curl_exec() führt eine CURL-Anfrage aus. Wenn kein Fehler auftritt, gibt die Funktion die von der entsprechenden URL zurückgegebenen Daten zurück und gibt die Zufriedenheit als Zeichenfolge an FALSCH. Es ist zu beachten, dass das Gleichheitszeichen verwendet wird, um zu bestimmen, ob die Ausgabe FALSE ist. Dies dient der Unterscheidung zwischen der Rückgabe einer leeren Zeichenfolge und einem Fehler.

  • Die wichtigste Funktion in der CURL-Funktionsbibliothek ist curl_setopt(), die HTTP-Anfragen anpassen kann, indem sie von der CURL-Funktionsbibliothek definierte Optionen festlegt. Im obigen Codeausschnitt werden drei wichtige Optionen verwendet:

  • ①CURLOPT_URL gibt die angeforderte URL an;

②CURLOPT_RETURNTRANSFER wird auf 1 gesetzt, um die Funktion „curl_exec“ anzugeben Später ausgeführt. Die Rückgabe ist die Rückgabezeichenfolge der URL, anstatt die Rückgabezeichenfolge an die Standardausgabe weiterzuleiten und TRUE zurückzugeben. ③CURLLOPT_HEADER wird auf 0 gesetzt, um anzuzeigen, dass keine HTTP-Header-Informationen zurückgegeben werden .


CURL bietet viele Optionen. Auf der offiziellen Website von PHP (http://www.php.cn/) finden Sie eine Liste aller von CURL unterstützten Optionen.


Rufen Sie die Ausgabeinformationen der CURL-Anfrage ab

Nachdem die Funktion „curl_exec()“ ausgeführt wurde, können Sie die Funktion „curl_getinfo()“ verwenden Erhalten Sie die relevante Ausgabe der CURL-Anfrageinformationen. Der Beispielcode lautet wie folgt:

Im obigen Code: curl_getinfo gibt ein assoziatives Array zurück, das die folgenden Daten enthält:

curl_exec($ch);
$info = curl_getinfo($sh);
echo ' 获取 '.$info['url'].'耗时'.$info['total_time'].'秒';

URL: Netzwerkadresse.

content_type: Inhaltskodierung.
  • http_code: HTTP-Statuscode.
  • header_size: Die Größe des Headers.
  • request_size: Die Größe der Anfrage.
  • filetime: die Zeit, zu der die Datei erstellt wurde.
  • ssl_verify_result: SSL-Verifizierungsergebnis.
  • redirect_count: Sprunganzahl.
  • total_time: insgesamt benötigte Zeit.
  • namelookup_time: DNS-Abfragezeit.
  • connect_time: Wartezeit für die Verbindung.
  • pretransfer_time: Vorbereitungszeit vor dem Transfer.
  • size_uplpad: Die Größe der hochgeladenen Daten.
  • size_download: Die Größe der heruntergeladenen Daten.
  • speed_download: Download-Geschwindigkeit.
  • speed_upload: Upload-Geschwindigkeit.
  • download_content_length: Die Länge des Download-Inhalts.
  • upload_content_length: Die Länge des hochgeladenen Inhalts.
  • starttransfer_time: Zeitplan für den Beginn des Transfers.
  • redirect_time: Umleitungszeit.
  • Die Funktion „curl_getinfo()“ verfügt außerdem über einen optionalen Parameter $opt, über den Sie einige Konstanten festlegen können, die dem Feld oben entsprechen. Wenn der zweite Parameter festgelegt ist, wird nur zurückgegeben angegebenen Informationen. Wenn $opt beispielsweise auf CURLINFO_TOTAL_TIME gesetzt ist, gibt die Funktion curl_getinfo() nur total_time zurück, also die Zeit, die für die gesamte Übertragung benötigt wird. Wenn Sie nur auf bestimmte Übertragungsinformationen achten müssen, ist das Setzen des Parameters $opt sinnvoll .
  • Verwenden Sie CURL, um eine GET-Anfrage zu senden

So verwenden Sie CURL, um eine GET-Anfrage zu senden Stellen Sie eine URL im richtigen Format zusammen. Die Anforderungsadresse und die GET-Daten werden durch ein „?“ getrennt, dann werden der Name und der Wert der GET-Variablen durch „=“ getrennt und jeder GET-Name und -Wert wird durch „&“ verbunden. PHP stellt uns eine Funktion zur Verfügung, die speziell zum Zusammenstellen der GET-Anforderungs- und Datenteile verwendet wird – http_build_query. Diese Funktion akzeptiert ein assoziatives Array und gibt die durch die zugehörigen Daten beschriebene GET-Anforderungszeichenfolge zurück. Mit dieser Funktion haben wir in Kombination mit dem allgemeinen Prozess des CURL-Sendens von HTTP-Anfragen eine Funktion geschlossen, die GET-Anfragen sendet – doCurlGetRequest. Der spezifische Code lautet wie folgt:

Diese Funktion übergibt die URL mit GET-Parametern, die mit http_build_query zusammengestellt wurden, an die Funktion „curl_init“ und verwendet dann CURL, um eine HTTP-Anfrage zu senden.

/**
 *@desc 封闭curl的调用接口,get的请求方式。
*/
function doCurlGetRequest($url,$data,$timeout = 5){
 if($curl == "" || $timeout <= 0){
 return false;
 }
 $url = $url.&#39;?&#39;.http_bulid_query($data);
 $con = curl_init((string)$url);
 curl_setopt($con, CURLOPT_HEADER, false);
 curl_setopt($con, CURLOPT_RETURNTRANSFER,true);
 curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout);
 
 return curl_exec($con);
}

Verwenden Sie CURL, um eine POST-Anfrage zu senden.

Sie können die von CURL bereitgestellte Option CURLOPT_POSTFIELDS verwenden, um POST-String-Daten bereitzustellen die Anfrage im Text. Ebenso haben wir eine Funktion zum Senden einer POST-Anfrage implementiert – doCurlPostRequest. Der Code lautet wie folgt:

Zusätzlich zu Festlegen von CURLOPT_POSTFIELDS im obigen Code. Darüber hinaus setzen wir CURL_POST auf true, um anzuzeigen, dass es sich bei dieser Anfrage um eine POST-Anfrage handelt. GET-Daten können auch in POST-Anfragen übermittelt werden. Sie müssen lediglich die GET-Anfragedaten in der URL zusammenstellen.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er zum Lernen aller beiträgt. Ich hoffe auch, dass jeder die PHP-Chinesisch-Website unterstützt.

Weitere Artikel zur Verwendung von Curl zum Senden von Anfragen (GET-Anfragen und POST-Anfragen) in PHP finden Sie auf der chinesischen PHP-Website!

Verwandte Artikel:

Das URL-Parameterproblem, wenn PHP Curl verwendet, um eine Get-Anfrage zu initiieren

Hinweis zu PHP, das die Curl-Funktion verwendet um eine Post-Anfrage zu senden. Detaillierte Erläuterung von Ereignisbeispielen

PHP-Entwicklungsfähigkeiten (8) – Details zum CURL-Anfragecode

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