En un client Savon que fa servir HTTPI, el proxy forma part de les opcions del client. S'aplica quan es recupera un WSDL remot i quan s'envia la petició SOAP.

client = Savon.client(
  wsdl: 'https://service.example/soap?wsdl',
  proxy: ENV.fetch('SOAP_PROXY_URL'),
  open_timeout: 5,
  read_timeout: 15
)

L'exemple assumeix el transport HTTPI. Proporciona una URL de proxy aprovada mitjançant l'entorn. Per a una prova SOAP pública que permet un intermediari HTTP no autenticat, un candidat de la llista de proxys HTTP pot proporcionar aquesta URL; mantén separades les decisions d'autenticació del servei i del proxy. Si el mètode d'autenticació admès fa servir credencials dins de la URL, codifica els caràcters reservats d'aquestes credencials i mantén la URL resultant fora dels registres.

Savon les anomena “opcions globals”, però són locals a una instància de client. Un altre client creat en un altre lloc no hereta el proxy automàticament.

Comprova el transport instal·lat abans de reutilitzar el fragment. La documentació actual de Savon assigna aquestes opcions a HTTPI; el seu transport Faraday té la seva pròpia interfície de configuració mitjançant client.faraday i rebutja aquestes opcions específiques d'HTTPI. Configura el transport triat en lloc de barrejar les dues interfícies.

Mantén el compte del proxy separat de les credencials del servei SOAP i dels valors de WS-Security. El 407 del proxy, el repte d'inici de sessió HTTP del servei i una fallada SOAP identifiquen intercanvis diferents. L'obtenció del WSDL pot fallar abans que el client hagi fet cap operació d'aplicació.

Articles relacionats