При клиент на Savon, който използва HTTPI, проксито е част от опциите на клиента. То се прилага при изтегляне на отдалечен WSDL и при изпращане на SOAP заявката.

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

Примерът предполага транспорта HTTPI. Подайте одобрен URL на прокси през средата. За публичен SOAP тест, който допуска неудостоверен HTTP посредник, кандидат от списъка с HTTP прокси може да предостави този URL; дръжте решенията за удостоверяване на услугата и на проксито отделно. Ако поддържаният метод за удостоверяване използва данни в URL, кодирайте запазените знаци в тези данни и дръжте получения URL извън журналите.

Savon нарича това „глобални опции“, но те са локални за конкретен клиентски екземпляр. Отделен клиент, създаден другаде, не наследява проксито автоматично.

Проверете инсталирания транспорт, преди да използвате отново фрагмента. Актуалната документация на Savon отнася тези опции към HTTPI; транспортът Faraday има собствен интерфейс за настройка чрез client.faraday и отхвърля тези специфични за HTTPI опции. Настройте избрания транспорт, вместо да смесвате двата интерфейса.

Дръжте профила за проксито отделно от данните за услугата SOAP и стойностите на WS-Security. Кодът 407 на проксито, HTTP предизвикателството за вход на услугата и SOAP грешката означават различни обмени. Изтеглянето на WSDL може да се провали, преди клиентът да е извършил каквато и да е операция.

Подобни статии