《PHP學習:淺談PHP發(fā)送HTTP請求的幾種方式》要點:
本文介紹了PHP學習:淺談PHP發(fā)送HTTP請求的幾種方式,希望對您有用。如果有疑問,可以聯(lián)系我們。
PHP實戰(zhàn)PHP 開發(fā)中我們常用 cURL 方式封裝 HTTP 請求,什么是 cURL?
PHP實戰(zhàn)cURL 是一個用來傳輸數(shù)據(jù)的工具,支持多種協(xié)議,如在 Linux 下用 curl 命令行可以發(fā)送各種 HTTP 請求.PHP 的 cURL 是一個底層的庫,它能根據(jù)不同協(xié)議跟各種服務器通訊,HTTP 協(xié)議是其中一種.
PHP實戰(zhàn)現(xiàn)代化的 PHP 開發(fā)框架中經常會用到一個包,叫做 GuzzleHttp,它是一個 HTTP 客戶端,也可以用來發(fā)送各種 HTTP 請求,那么它的實現(xiàn)原理是什么,與 cURL 有何不同呢?
PHP實戰(zhàn)Does Guzzle require cURL?
PHP實戰(zhàn)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.
PHP實戰(zhàn)這是 GuzzleHttp 文檔 FAQ 中的一個 Question,可見 GuzzleHttp 并不依賴 cURL 庫,而支持多種發(fā)送 HTTP 請求的方式.
PHP實戰(zhàn)PHP 發(fā)送 HTTP 請求的方式
PHP實戰(zhàn)那么這里整理一下除了使用 cURL 外 PHP 發(fā)送 HTTP 請求的方式.
PHP實戰(zhàn)1.cURL
PHP實戰(zhàn)詳細方法:/article/56492.htm
PHP實戰(zhàn)2.stream流的方式
PHP實戰(zhàn)stream_context_create 作用:創(chuàng)建并返回一個文本數(shù)據(jù)流并應用各種選項,可用于 fopen(), file_get_contents() 等過程的超時設置、代理服務器、請求方式、頭信息設置的特殊過程.
PHP實戰(zhàn)以一個 POST 請求為例:
PHP實戰(zhàn)PHP
PHP實戰(zhàn)
<?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;
}
PHP實戰(zhàn)關于 PHP stream 的介紹文章:/article/68891.htm
PHP實戰(zhàn)3.socket方式
PHP實戰(zhàn)使用套接字建立連接,拼接 HTTP 報文發(fā)送數(shù)據(jù)進行 HTTP 請求.
PHP實戰(zhàn)一個 GET 方式的例子:
PHP實戰(zhàn)PHP
PHP實戰(zhàn)
<?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);
}
?>
PHP實戰(zhàn)本文介紹了發(fā)送 HTTP 請求的幾種不同的方式.
PHP實戰(zhàn)以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持維易PHP.
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/432.html