PHP-SoapClient-Proxy-Einstellungen für WSDL und Dienstaufrufe
Konfigurieren Sie Proxy-Optionen für den PHP-SoapClient für das Laden von WSDL und Dienstaufrufe, ohne Anmeldedaten in den User-Agent einzufügen.
Das Laden einer entfernten WSDL kann im Konstruktor von SoapClient erfolgen. Geben Sie den Proxy vor diesem ersten Abruf an:
$client = new SoapClient('https://service.example.com/api?wsdl', [
'proxy_host' => '203.0.113.10',
'proxy_port' => 8080,
'proxy_login' => getenv('PROXY_USER'),
'proxy_password' => getenv('PROXY_PASSWORD'),
'connection_timeout' => 5,
'exceptions' => true,
]);Verwenden Sie die echte WSDL, Host/Port des Proxys und die vorgesehene Quelle für Anmeldedaten. Das Host-Feld ist eine Adresse, der Port steht separat.
| Wenn es fehlschlägt | Zu prüfende Anfrage oder Operation |
|---|---|
| Erzeugung des Clients | WSDL-Abruf oder Dokumentverarbeitung. |
| Verarbeitung importierter Dokumente/Schemata | Die tatsächliche zusätzliche Abruf-URL. |
| Ein SOAP-Methodenaufruf | Der in der WSDL deklarierte Dienstendpunkt, möglicherweise auf einem anderen Host. |
Ein Prozess mit zwischengespeicherter WSDL kann die Anfrage überspringen, die auf einem anderen Rechner fehlschlägt. Behalten Sie die Cache-Konfiguration und die tatsächlich fehlgeschlagene URL beim Vergleich bei, statt den Proxy nur aufgrund einer erfolgreichen Erzeugung zu ändern.
proxy_login/proxy_password authentifizieren den Vermittler. Ziel-login/password und Dienstauthentifizierung auf SOAP-Ebene dienen anderen Schichten. Verwenden Sie die dedizierten Optionen, statt kontenähnliche Header in den User-Agent zu setzen; erforderliche Anwendungsheader gehören in eine unterstützte Header-Schnittstelle.
Erfassen Sie die Operation, das Ziel und die Partei, die eine Aufforderung ausgibt mit entfernten Geheimnissen. connection_timeout begrenzt den Verbindungsaufbau, nicht die Gesamtdauer einer langen SOAP-Operation.