如何在 ruby 中使用 savon 客户端进行先发制人的基本身份验证调用?

How to make a pre-emptive basic authentication call using savon client in ruby?

我正在 savon 中执行以下代码,但无法执行,因为它需要先发制人的授权。我已在 soapUI 中验证,但无法在 savon 中 运行。 有人可以帮忙吗?

client = Savon.client(ssl_verify_mode: :none) do
  wsdl '/Users/sp/jda_notifications/TransportationManagerService.wsdl'
  endpoint 'http://localhost:8088/webservices/services/TransportationManager'
  basic_auth('VENTURE', 'VENTURE')
end

我遇到了完全相同的问题

这里是解决方案:

realm = Base64.strict_encode64("VENTURE:VENTURE")
client = Savon.client(
    wsdl:'/Users/sp/jda_notifications/TransportationManagerService.wsdl',
    headers: { 'Authorization' => "Basic #{realm}"}
)

我们必须使用 headers 来编辑 http headers 而不是 soap_header。