首頁  >  文章  >  後端開發  >  PHP進階特性:HTTP客戶端與伺服器實戰

PHP進階特性:HTTP客戶端與伺服器實戰

WBOY
WBOY原創
2024-06-04 16:23:00440瀏覽

PHP提供HTTP客戶端庫(cURL、GuzzleHttp)進行HTTP請求發送,也支援建立HTTP伺服器(如Swoole)。實戰案例包括使用cURL從API取得資料以及利用Swoole建立自訂HTTP伺服器處理表單資料。

PHP進階特性:HTTP客戶端與伺服器實戰

PHP進階特性:HTTP用戶端與伺服器實戰

HTTP用戶端

PHP內建了cURL和GuzzleHttp等函式庫,可用來建立HTTP請求。以下是如何使用GuzzleHttp發送GET請求:

use GuzzleHttp\Client;

$client = new Client();
$response = $client->get('https://example.com');

// 检索响应状态码
$statusCode = $response->getStatusCode();

// 检索响应正文
$body = $response->getBody()->getContents();

HTTP伺服器

PHP也允許您建立HTTP伺服器。以下是一個簡單的基於Swoole的伺服器範例:

use Swoole\Http\Server;

$server = new Server('0.0.0.0', 8811);
$server->on('request', function (Swoole\Http\Request $request, Swoole\Http\Response $response) {
    $response->header('Content-Type', 'text/plain');
    $response->end('Hello World!');
});

$server->start();

#實戰案例:API請求

以下是使用cURL從外部API檢索資料的實戰案例:

<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.example.com/v1/users',
    CURLOPT_RETURNTRANSFER => true,
]);

$response = curl_exec($curl);
curl_close($curl);

$data = json_decode($response);

// 处理$data
?>

實戰案例:自訂HTTP伺服器

以下是使用Swoole建立自訂HTTP伺服器進行簡單的表單處理的實戰案例:

<?php
use Swoole\Http\Server;
use Swoole\Http\Request;

$server = new Server('0.0.0.0', 8812);
$server->on('request', function (Request $request, Swoole\Http\Response $response) {
    // 处理POST数据
    $post = $request->post;

    // 根据要执行的操作创建响应
    if ($post['action'] === 'create') {
        // 处理创建操作
    } elseif ($post['action'] === 'update') {
        // 处理更新操作
    }

    // 发送响应
    $response->end('操作完成');
});

$server->start();
?>

以上是PHP進階特性:HTTP客戶端與伺服器實戰的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn