Configurar un proxy HTTPI de Savon para peticións WSDL e SOAP
Configura o proxy nun cliente Savon HTTPI e ten en conta tanto a obtención remota do WSDL como as chamadas SOAP.
Nun cliente Savon que usa HTTPI, o proxy forma parte das opcións do cliente. Aplícase ao obter un WSDL remoto e ao enviar a petición SOAP.
client = Savon.client(
wsdl: 'https://service.example/soap?wsdl',
proxy: ENV.fetch('SOAP_PROXY_URL'),
open_timeout: 5,
read_timeout: 15
)
O exemplo supón o transporte HTTPI. Subministra un URL de proxy aprobado mediante a contorna. Para unha proba SOAP pública que permita un intermediario HTTP sen autenticar, un candidato da lista de proxies HTTP pode fornecer ese URL; mantén separadas as decisións de autenticación do servizo e do proxy. Se o método de autenticación admitido usa credenciais dentro do URL, codifica os caracteres reservados desas credenciais e mantén o URL resultante fóra dos rexistros.
Savon chámaas «opcións globais», pero son locais a unha instancia de cliente. Outro cliente creado noutro lugar non herda o proxy automaticamente.
Comproba o transporte instalado antes de reutilizar o fragmento. A documentación actual de Savon asigna estas opcións a HTTPI; o seu transporte Faraday ten a súa propia interface de configuración mediante client.faraday e rexeita estas opcións específicas de HTTPI. Configura o transporte elixido en lugar de mesturar as dúas interfaces.
Mantén a conta do proxy separada das credenciais do servizo SOAP e dos valores de WS-Security. O 407 do proxy, o desafío de inicio de sesión HTTP do servizo e un fallo SOAP identifican intercambios distintos. A obtención do WSDL pode fallar antes de que o cliente fixese sequera unha operación de aplicación.