Einen Savon-HTTPI-Proxy für WSDL- und SOAP-Anfragen konfigurieren
Konfigurieren Sie den Proxy an einem Savon-HTTPI-Client und berücksichtigen Sie sowohl den Abruf einer entfernten WSDL als auch SOAP-Aufrufe.
Bei einem Savon-Client, der HTTPI verwendet, gehört der Proxy zu den Optionen des Clients. Er greift beim Abruf einer entfernten WSDL und beim Senden der SOAP-Anfrage.
client = Savon.client(
wsdl: 'https://service.example/soap?wsdl',
proxy: ENV.fetch('SOAP_PROXY_URL'),
open_timeout: 5,
read_timeout: 15
)
Das Beispiel setzt den HTTPI-Transport voraus. Stellen Sie eine freigegebene Proxy-URL über die Umgebung bereit. Für einen öffentlichen SOAP-Test, der einen nicht authentifizierten HTTP-Vermittler zulässt, kann ein Kandidat aus der HTTP-Proxy-Liste diese URL liefern; halten Sie die Entscheidungen zur Dienst- und Proxy-Authentifizierung getrennt. Nutzt die unterstützte Authentifizierungsmethode URL-Zugangsdaten, kodieren Sie reservierte Zeichen in diesen Zugangsdaten und halten Sie die entstehende URL aus Protokollen heraus.
Savon nennt sie „globale Optionen“, sie gelten aber nur für eine Client-Instanz. Ein anderswo erzeugter Client erbt den Proxy nicht automatisch.
Prüfen Sie den installierten Transport, bevor Sie das Snippet wiederverwenden. Die aktuelle Savon-Dokumentation ordnet diese Optionen HTTPI zu; der Faraday-Transport hat über client.faraday seine eigene Einrichtungsschnittstelle und lehnt diese HTTPI-spezifischen Optionen ab. Konfigurieren Sie den gewählten Transport, statt beide Schnittstellen zu mischen.
Halten Sie das Proxy-Konto getrennt von den Zugangsdaten des SOAP-Dienstes und den WS-Security-Werten. Die 407 des Proxys, die HTTP-Anmeldeaufforderung des Dienstes und ein SOAP-Fehler kennzeichnen unterschiedliche Austausche. Der WSDL-Abruf kann fehlschlagen, bevor der Client überhaupt eine Anwendungsoperation ausgeführt hat.