當前位置: 首頁> 最新文章列表> PHP實現百度文心一言API請求代理與反向代理教程

PHP實現百度文心一言API請求代理與反向代理教程

M66 2025-06-24

使用PHP代碼實現百度文心一言API接口的請求代理和反向代理

概述

百度文心一言API提供豐富的隨機句子和名人名言,廣泛應用於網站和APP中。由於調用限制和安全考慮,使用代理或反向代理來訪問該API成為常見需求。代理不僅能隱藏真實IP,還能優化請求頭,提升請求成功率。

請求代理

請求代理是指客戶端請求先發送到代理服務器,由代理服務器代表客戶端向百度文心一言API發起請求,從而隱藏真實IP並偽裝請求頭。下面展示了用PHP創建簡單HTTP代理服務器的示例代碼:
<?php
// 創建一個代理服務器
$proxy = stream_socket_server('tcp://127.0.0.1:8000', $errno, $errstr);
if (!$proxy) {
    die("創建代理服務器失敗:$errstr ($errno)");
}

while (true) {
    // 接受客戶端連接請求
    $client = stream_socket_accept($proxy);
    if ($client) {
        // 從客戶端讀取請求
        $request = fread($client, 8192);

        // 修改請求頭,偽裝為百度文心一言API的請求
        $request = str_replace(
            'Host: localhost:8000',
            'Host: api.lovelive.tools',
            $request
        );

        // 創建與API接口的連接
        $api = stream_socket_client('tcp://api.lovelive.tools:80', $errno, $errstr, 30);
        if ($api) {
            // 向API接口發送請求
            fwrite($api, $request);

            // 獲取API的響應並返回給客戶端
            while (!feof($api)) {
                fwrite($client, fread($api, 8192));
            }
            fclose($api);
        } else {
            fclose($client);
        }
    }
}
fclose($proxy);

將代碼保存為proxy.php,通過命令行運行:

php proxy.php

此時代理服務器運行在127.0.0.1:8000端口。

使用curl命令通過代理髮送請求示例:

curl -x localhost:8000 https://api.lovelive.tools/api/SweetNothings/1

反向代理

反向代理通過服務器配置將客戶端請求轉發到目標API服務器,實現負載均衡和請求轉發。以下為示例Nginx配置,將請求轉發到本地代理服務器:
server {
    listen 80;
    server_name api.mydomain.com;

    location / {
        proxy_pass http://localhost:8000;
        proxy_set_header Host api.lovelive.tools;
    }
}

反向代理PHP代碼示例,實現請求轉發與響應返回:

<?php
// 創建與API接口的連接
$api = stream_socket_client('tcp://api.lovelive.tools:80', $errno, $errstr, 30);
if ($api) {
    // 從客戶端讀取請求体
    $request = file_get_contents('php://input');

    // 向API接口發送請求
    fwrite($api, $request);

    // 獲取API響應並返回客戶端
    while (!feof($api)) {
        echo fread($api, 8192);
    }
    fclose($api);
} else {
    header('HTTP/1.1 500 Internal Server Error');
    echo "與API接口連接失敗";
}

將代碼保存為reverse_proxy.php,命令行啟動:

php -S localhost:8000 reverse_proxy.php

反向代理服務器即可在localhost:8000端口運行。

客戶端請求直接發送至api.mydomain.com,服務器負責轉發至百度文心一言API並返迴響應。

總結

本文介紹瞭如何使用PHP實現百度文心一言API的請求代理和反向代理,幫助開發者靈活控制API請求,保護應用安全。代理服務器隱藏IP,反向代理則實現負載均衡和請求轉發。示例代碼和配置簡潔實用,可根據需求定制,滿足多樣化業務場景。