PHP コードを使用して、Baidu Wenxin Yiyan API インターフェイスのリクエスト プロキシとリバース プロキシを実装します。
概要:
Baidu Wenxin Yiyan は、API インターフェイスを提供するプロバイダーです。さまざまなランダムな文や有名人の引用は、Web サイト、アプリ、その他のアプリケーションで使用できます。ただし、何らかの理由で、制限を回避したり、リクエストをより適切に制御したりするために、プロキシまたはリバース プロキシを使用して API を呼び出す必要がある場合があります。
リクエスト プロキシ:
リクエスト プロキシとは、リクエストを中間サーバー (プロキシ サーバー) に送信し、プロキシ サーバーがそのリクエストを代わって Baidu Wenxin Yiyan API インターフェイスに送信することを指します。この方法により、実際の IP アドレスを隠し、第一級の情報のリクエストを偽装し、リクエストの成功率を向上させることができます。
まず、プロキシ サーバーを作成する必要があります。PHP を使用して、8000 などの指定されたポートをリッスンする単純な 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 が起動しています。
次に、プロキシ サーバーにリクエストを送信し、応答結果を取得することで、Baidu Wenxin Yiyan API インターフェイスにリクエストを送信できます。たとえば、curl コマンド ライン ツールを使用してリクエストを送信できます。
curl -x localhost:8000 https://api.lovelive.tools/api/SweetNothings/1
リバース プロキシ:
リバース プロキシとは、クライアントがリクエストを送信したときに、そのリクエストを別のサーバーに転送するようにサーバーを構成することを指します。そしてサーバーの応答をクライアントに返します。このアプローチにより、負荷分散と高可用性を実現できます。
まず、Baidu Wenxin Yiyan API へのすべてのリクエストをリバース プロキシ サーバーに転送するように Web サーバーを構成する必要があります。以下は Nginx 設定ファイルのサンプルです:
server { listen 80; server_name api.mydomain.com; location / { proxy_pass http://localhost:8000; proxy_set_header Host api.lovelive.tools; } }
上記の設定は、上で作成したプロキシ サーバー (localhost:8000 で実行) にリクエストを転送します。
リバース プロキシ サーバーにおける私たちの仕事は、クライアントのリクエストを受け入れ、それを Baidu Wenxin Yiyan API インターフェイスに転送し、その応答をクライアントに返すことです。以下は簡単なサンプル コードです:
<?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 インターフェイスのリクエスト プロキシとリバース プロキシを実装する方法です。プロキシとリバース プロキシを使用すると、アプリケーションを保護および最適化しながら、リクエストをより適切に制御できます。リクエスト プロキシであってもリバース プロキシであっても、実際のニーズに応じて構成および変更して、さまざまなビジネス ニーズを満たすことができます。
以上がPHP コードを使用して、Baidu Wenxinyiyan API インターフェイスのリクエスト プロキシとリバース プロキシを実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。