溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP如何發送HTTP請求

發布時間:2021-07-26 14:34:15 來源:億速云 閱讀:148 作者:小新 欄目:開發技術

小編給大家分享一下PHP如何發送HTTP請求,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

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

詳細方法:https://www.jb51.net/article/56492.htm

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

關于 PHP stream 的介紹文章:https://www.jb51.net/article/68891.htm

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

以上是“PHP如何發送HTTP請求”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女