Configurer un proxy HTTPI pour Savon avec les requêtes WSDL et SOAP
Configurez le proxy sur un client Savon HTTPI et tenez compte à la fois de la récupération du WSDL distant et des appels SOAP.
Dans un client Savon qui utilise HTTPI, le proxy fait partie des options du client. Il s'applique lors de la récupération d'un WSDL distant et lors de l'envoi de la requête SOAP.
client = Savon.client(
wsdl: 'https://service.example/soap?wsdl',
proxy: ENV.fetch('SOAP_PROXY_URL'),
open_timeout: 5,
read_timeout: 15
)
L'exemple suppose le transport HTTPI. Fournissez une URL de proxy approuvée via l'environnement. Pour un test SOAP public qui autorise un intermédiaire HTTP non authentifié, un candidat de la liste de proxys HTTP peut fournir cette URL ; gardez distinctes les décisions d'authentification du service et du proxy. Si la méthode d'authentification prise en charge utilise des identifiants dans l'URL, encodez les caractères réservés de ces identifiants et gardez l'URL obtenue hors des journaux.
Savon les appelle « options globales », mais elles restent locales à une instance de client. Un autre client construit ailleurs n'hérite pas automatiquement du proxy.
Vérifiez le transport installé avant de réutiliser l'extrait. La documentation actuelle de Savon rattache ces options à HTTPI ; son transport Faraday dispose de sa propre interface de configuration via client.faraday et refuse ces options spécifiques à HTTPI. Configurez le transport retenu plutôt que de mélanger les deux interfaces.
Gardez le compte du proxy distinct des identifiants du service SOAP et des valeurs WS-Security. Le 407 du proxy, le défi de connexion HTTP du service et une erreur SOAP désignent des échanges différents. La récupération du WSDL peut échouer avant même que le client ait exécuté une opération applicative.