国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

淺談PHP發送HTTP請求的幾種方式

2024-05-04 23:58:59
字體:
來源:轉載
供稿:網友

PHP 開發中我們常用 cURL 方式封裝 HTTP 請求,什么是 cURL?

cURL 是一個用來傳輸數據的工具,支持多種協議,如在 Linux 下用 curl 命令行可以發送各種 HTTP 請求。PHP 的 cURL 是一個底層的庫,它能根據不同協議跟各種服務器通訊,HTTP 協議是其中一種。

現代化的 PHP 開發框架中經常會用到一個包,叫做 GuzzleHttp,它是一個 HTTP 客戶端,也可以用來發送各種 HTTP 請求,那么它的實現原理是什么,與 cURL 有何不同呢?

Does Guzzle require 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.

這是 GuzzleHttp 文檔 FAQ 中的一個 Question,可見 GuzzleHttp 并不依賴 cURL 庫,而支持多種發送 HTTP 請求的方式。

PHP 發送 HTTP 請求的方式

那么這里整理一下除了使用 cURL 外 PHP 發送 HTTP 請求的方式。

1.cURL

2.stream流的方式

stream_context_create 作用:創建并返回一個文本數據流并應用各種選項,可用于 fopen(), file_get_contents() 等過程的超時設置、代理服務器、請求方式、頭信息設置的特殊過程。

以一個 POST 請求為例:

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方式

使用套接字建立連接,拼接 HTTP 報文發送數據進行 HTTP 請求。

一個 GET 方式的例子:

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);}?>

本文介紹了發送 HTTP 請求的幾種不同的方式。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 芦溪县| 扎兰屯市| 师宗县| 岳阳市| 左贡县| 衡东县| 黄梅县| 崇明县| 黎城县| 驻马店市| 定日县| 红河县| 壶关县| 丽水市| 富阳市| 通山县| 常州市| 临夏县| 沂水县| 大足县| 西丰县| 宜兰市| 南昌县| 溆浦县| 通渭县| 葵青区| 社会| 阿图什市| 阿坝县| 灵武市| 丹棱县| 涡阳县| 竹北市| 察隅县| 瑞丽市| 上虞市| 八宿县| 玉屏| 南城县| 皮山县| 丰县|