PHP發(fā)起的異步HTTP請(qǐng)求怎么處理

PHP
小億
126
2024-04-16 09:58:08

在PHP中發(fā)起異步HTTP請(qǐng)求一般有兩種方法:使用cURL庫(kù)或使用Guzzle HTTP Client庫(kù)。以下是使用這兩種方法處理異步HTTP請(qǐng)求的示例代碼:

  1. 使用cURL庫(kù):
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);

// 設(shè)置為異步請(qǐng)求
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);

// 發(fā)起請(qǐng)求
curl_exec($ch);

// 關(guān)閉cURL資源
curl_close($ch);

// 處理響應(yīng)
// 這里可以根據(jù)實(shí)際情況進(jìn)行響應(yīng)處理
  1. 使用Guzzle HTTP Client庫(kù):
require 'vendor/autoload.php'; // 導(dǎo)入Guzzle庫(kù)

$client = new GuzzleHttp\Client();

// 發(fā)起異步請(qǐng)求
$request = new GuzzleHttp\Psr7\Request('GET', 'http://example.com');
$promise = $client->sendAsync($request);

$promise->then(
    function (GuzzleHttp\Psr7\Response $response) {
        // 處理響應(yīng)
        // 這里可以根據(jù)實(shí)際情況進(jìn)行響應(yīng)處理
    },
    function (GuzzleHttp\Exception\RequestException $exception) {
        // 處理異常
    }
);

$promise->wait(); // 等待請(qǐng)求完成

以上是使用cURL庫(kù)和Guzzle HTTP Client庫(kù)處理異步HTTP請(qǐng)求的示例代碼,可以根據(jù)實(shí)際需求選擇適合的方法。

0