PHP 코드를 사용하여 Baidu Wenxin Yiyan API 인터페이스의 요청 프록시 및 역방향 프록시를 구현합니다
개요:
Baidu Wenxin Yiyan은 웹사이트, 앱 및 앱에서 사용할 수 있는 다양한 임의 문장과 유명 인사 인용문을 제공하는 API 인터페이스입니다. 다른 응용 프로그램. 그러나 어떤 이유로 인해 일부 제한을 피하거나 요청을 더 잘 제어하기 위해 프록시 또는 역방향 프록시의 도움으로 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 -x localhost:8000 https://api.lovelive.tools/api/SweetNothings/1
역방향 프록시:
역방향 프록시는 클라이언트가 요청을 보낼 때 해당 요청을 다른 서버로 전달하고 서버의 응답을 다음 서버로 반환하도록 서버를 구성하는 것을 의미합니다. 클라이언트. 이 접근 방식을 사용하면 로드 밸런싱과 고가용성을 달성할 수 있습니다.
먼저 Baidu Wenxin Yiyan API에 대한 모든 요청을 역방향 프록시 서버로 전달하도록 웹 서버를 구성해야 합니다. 다음은 샘플 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!