現在の位置: ホーム> 最新記事一覧> Baidu Wenxin Yiyan APIリクエストプロキシとリバースプロキシの実装に関するチュートリアル

Baidu Wenxin Yiyan APIリクエストプロキシとリバースプロキシの実装に関するチュートリアル

M66 2025-06-24

PHPコードを使用して、Baidu Wenxin Yiyan APIインターフェイスのリクエストプロキシとリバースプロキシを実装します

概要

Baidu Wenxin Yiyan APIは、ウェブサイトやアプリで広く使用されている豊富な種類のランダムな文と有名な引用を提供します。コールの制限とセキュリティ上の考慮事項により、このAPIにアクセスするためにプロキシまたは逆プロキシを使用するための一般的な要件となっています。プロキシは、実際のIPを非表示にするだけでなく、リクエストヘッダーを最適化し、リクエストの成功率を改善できます。

プロキシをリクエストします

リクエストプロキシとは、クライアント要求が最初にプロキシサーバーに送信されることを意味し、プロキシサーバーはクライアントに代わってBaidu Wenxin Yiyan 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);

        // リクエストヘッダーを変更します,Baidu Wenxinの言葉に偽装されています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

逆プロキシ

Reverse Proxyは、サーバー構成を介してターゲットAPIサーバーにクライアント要求を転送し、ロードバランシングとリクエスト転送を実現します。以下は、リクエストをローカルプロキシサーバーに転送するNGINX構成の例です。
サーバー{
    匂いく80;
    server_name api.mydomain.com;

    位置 / {
        proxy_pass http:// localhost:8000;
        proxy_set_headerホスト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に直接送信され、サーバーはそれをBaidu Wenxin Yiyan APIに転送し、応答を返します。

要約します

この記事では、PHPを使用してBaidu Wenxin Yiyan APIのリクエストプロキシと逆プロキシを実装する方法を紹介し、開発者がAPI要求を柔軟に制御し、アプリケーションセキュリティを保護するのに役立ちます。プロキシサーバーはIPを隠し、逆プロキシはロードバランスとリクエストの転送を実装します。サンプルコードと構成は簡潔で実用的であり、多様なビジネスシナリオを満たすために必要に応じてカスタマイズできます。