Axustes de proxy de SoapClient de PHP para WSDL e chamadas de servizo
Configure as opcións de proxy de SoapClient de PHP para cargar WSDL e facer chamadas de servizo sen inxectar credenciais no User-Agent.
A carga dun WSDL remoto pode ocorrer dentro do construtor de SoapClient. Subministre o proxy antes desa primeira obtención:
$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,
]);Use o WSDL real, o host/porto do proxy e a fonte de credenciais prevista. O campo de host é un enderezo, co seu porto separado.
| Cando falla | Solicitude ou operación a inspeccionar |
|---|---|
| Construción do cliente | Obtención do WSDL ou procesamento do documento. |
| Procesamento do documento/esquema importado | O URL adicional real de obtención. |
| Unha chamada a un método SOAP | O punto final do servizo declarado no WSDL, posiblemente noutro host. |
Un proceso que usa WSDL en caché pode omitir a solicitude que falla noutra máquina. Manteña a configuración da caché e o URL real que fallou xunto coa comparación, en lugar de cambiar o proxy só polo éxito da construción.
proxy_login/proxy_password autentican o intermediario. As login/password de destino e a autenticación do servizo a nivel SOAP serven outras capas. Use as opcións dedicadas en lugar de poñer cabeceiras semellantes a contas no User-Agent; as cabeceiras de aplicación necesarias pertencen a unha interface de cabeceiras admitida.
Rexistre a operación, o destino e a parte que emite un desafío co segredo eliminado. connection_timeout limita o establecemento da conexión, non a duración completa dunha operación SOAP longa.