Ajustes de proxy de SoapClient de PHP para WSDL y llamadas de servicio
Configure las opciones de proxy de SoapClient de PHP para cargar WSDL y realizar llamadas de servicio sin inyectar credenciales en el User-Agent.
La carga de un WSDL remoto puede ocurrir dentro del constructor de SoapClient. Proporcione el proxy antes de esa primera recuperació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 el WSDL real, el host/puerto del proxy y la fuente de credenciales prevista. El campo de host es una dirección, con su puerto aparte.
| Cuando falla | Solicitud u operación que inspeccionar |
|---|---|
| Construcción del cliente | Recuperación del WSDL o procesamiento del documento. |
| Procesamiento de documento/esquema importado | La URL adicional real de recuperación. |
| Una llamada a un método SOAP | El punto de conexión del servicio declarado en el WSDL, posiblemente en otro host. |
Un proceso que usa WSDL en caché puede omitir la solicitud que falla en otra máquina. Conserve la configuración de la caché y la URL real que falló junto con la comparación, en lugar de cambiar el proxy solo por el éxito de la construcción.
proxy_login/proxy_password autentican el intermediario. Las login/password de destino y la autenticación del servicio a nivel de SOAP sirven a otras capas. Use las opciones dedicadas en lugar de poner cabeceras similares a cuentas en el User-Agent; las cabeceras de aplicación necesarias pertenecen a una interfaz de cabeceras admitida.
Registre la operación, el destino y la parte que emite un desafío con los secretos eliminados. connection_timeout limita el establecimiento de la conexión, no la duración completa de una operación SOAP larga.