Paràmetres de proxy del SoapClient de PHP per a WSDL i crides de servei
Configureu les opcions de proxy del SoapClient de PHP per carregar WSDL i fer crides de servei sense injectar credencials a l'User-Agent.
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 falla | Sol·licitud o operació a inspeccionar |
|---|---|
| Construcció del client | Obtenció del WSDL o processament del document. |
| Processament de document/esquema importat | L'URL addicional real d'obtenció. |
| Una crida a un mètode SOAP | El 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.