У кліенце 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 можа праваліцца яшчэ да таго, як кліент выканае хоць якую аперацыю прыкладання.

Падобныя артыкулы