La càrrega d'un WSDL remot pot passar dins del constructor de SoapClient. Proporcioneu el proxy abans d'aquesta primera obtenció:

$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,
]);

Feu servir el WSDL real, l'amfitrió/port del proxy i la font de credencials prevista. El camp d'amfitrió és una adreça, amb el port per separat.

Quan fallaSol·licitud o operació a inspeccionar
Construcció del clientObtenció del WSDL o processament del document.
Processament de document/esquema importatL'URL addicional real d'obtenció.
Una crida a un mètode SOAPEl punt final del servei declarat al WSDL, possiblement en un altre amfitrió.

Un treballador que fa servir WSDL en memòria cau pot ometre la sol·licitud que falla en una altra màquina. Mantingueu la configuració de la memòria cau i l'URL real que ha fallat amb la comparació, en lloc de canviar el proxy només per l'èxit de la construcció.

proxy_login/proxy_password autentiquen l'intermediari. Les login/password de destinació i l'autenticació del servei a nivell SOAP serveixen altres capes. Feu servir les opcions dedicades en lloc de posar capçaleres semblants a comptes a l'User-Agent; les capçaleres d'aplicació necessàries pertanyen a una interfície de capçaleres admesa.

Registreu l'operació, l'objectiu i la part que emet el repte amb els secrets eliminats. connection_timeout limita l'establiment de la connexió, no la durada completa d'una operació SOAP llarga.

Articles relacionats