<?php
// Erstellen Sie einen Proxy -Server
$proxy = stream_socket_server('tcp://127.0.0.1:8000', $errno, $errstr);
if (!$proxy) {
    die("Ich habe keinen Proxy -Server erstellen:$errstr ($errno)");
}
while (true) {
    // Kundenverbindungsanfragen akzeptieren
    $client = stream_socket_accept($proxy);
    if ($client) {
        // Lesen Sie Anfragen vom Kunden
        $request = fread($client, 8192);
        // Ändern Sie den Anforderungsheader,Getarnt wie Baidu Wenxins WorteAPIAnfrage
        $request = str_replace(
            'Host: localhost:8000',
            'Host: api.lovelive.tools',
            $request
        );
        // Erstellen undAPIVerbindung der Schnittstelle
        $api = stream_socket_client('tcp://api.lovelive.tools:80', $errno, $errstr, 30);
        if ($api) {
            // In RichtungAPIDie Schnittstelle sendet Anfrage
            fwrite($api, $request);
            // ErhaltenAPIund geben Sie die Antwort an den Kunden zurück
            while (!feof($api)) {
                fwrite($client, fread($api, 8192));
            }
            fclose($api);
        } else {
            fclose($client);
        }
    }
}
fclose($proxy);
Speichern Sie den Code als Proxy.php und führen Sie ihn über die Befehlszeile aus:
PHP proxy.php
Diesmal wird der Proxy -Server auf Port 127.0.0.1:8000 ausgeführt.
Beispiel für das Senden von Anforderungen über den Proxy mit dem Curl -Befehl:
curl -x localhost: 8000 https://api.lovelive.tools/api/sweetnothings/1
Server {
    Hören Sie 80;
    server_name api.mydomain.com;
    Standort / {
        proxy_pass http: // localhost: 8000;
        proxy_set_header host api.lovelive.tools;
    }
}
Reverse Proxy PHP -Code -Beispiel, Implementierung der Anforderungsweiterleitung und Antwortrückgabe:
<?php
// Erstellen undAPIVerbindung der Schnittstelle
$api = stream_socket_client('tcp://api.lovelive.tools:80', $errno, $errstr, 30);
if ($api) {
    // Lesen Sie Anfragen vom Kunden体
    $request = file_get_contents('php://input');
    // In RichtungAPIDie Schnittstelle sendet Anfrage
    fwrite($api, $request);
    // ErhaltenAPIAntworten und zum Kunden zurückkehren
    while (!feof($api)) {
        echo fread($api, 8192);
    }
    fclose($api);
} else {
    header('HTTP/1.1 500 Internal Server Error');
    echo "UndAPISchnittstellenverbindung fehlgeschlagen";
}
Speichern Sie den Code als reverse_proxy.php und starten Sie die Befehlszeile:
PHP -S localhost: 8000 Reverse_proxy.php
Der Reverse -Proxy -Server kann auf dem Localhost: 8000 -Port ausgeführt werden.
Die Client -Anfrage wird direkt an api.mydomain.com gesendet, und der Server ist dafür verantwortlich, ihn an Baidu Wenxin Yiyan API weiterzuleiten und die Antwort zurückzugeben.
Verwandte Tags:
API 
								
								
							 
								
								
							 
								
								
							 
								
								
							 
								
								
							 
								
								
							![Wie löste ich PHP -Fehler: Unerwartet "]" Symbol?](/files/images/20250624/202506240621018118.jpg) 
								
								
							 
								
								
							 
								
								
							