覆盖 WSDL 的“soap:address location”值?

chu*_*son 4 soap savon

是否可以覆盖 WSDL 中的“地址位置”值?我需要在 URL 中提供动态用户/密码。

这当然行不通:

client = Savon::Client.new("example.wsdl")
client.http.url = "https://foo:bar@example.com"
Run Code Online (Sandbox Code Playgroud)

小智 5

如果您实际上只是想更改 URL,这对我有用:

client = Savon::Client.new("example.wsdl")
client.wsdl.endpoint = URI.parse "https://example.com"
Run Code Online (Sandbox Code Playgroud)

在较新版本中Savon,可以通过配置选项提供:

client = Savon::Client.new(wsdl: "example.wsdl",
                           endpoint: "https://example.com")
Run Code Online (Sandbox Code Playgroud)