gpt4 book ai didi

Ruby Savon 绑定(bind)问题

转载 作者:数据小太阳 更新时间:2023-10-29 07:32:52 24 4
gpt4 key购买 nike

我正在使用 Savon 的网络服务,WSDL 带有 2 个绑定(bind)。我如何指定在 Savon 中使用哪个绑定(bind)?其中一个是 http,另一个是 https。 我正在尝试使用 https 服务。

wsdl的资料

<wsdl:service name="ExampleService">
<wsdl:port name="ES" binding="tns:ES">
<soap:address location="http://example.com/service.svc"/>
</wsdl:port>
<wsdl:port name="ES1" binding="tns:ES1">
<soap:address location="https://example.com/service.svc"/>
</wsdl:port>
</wsdl:service>

我如何使用 ES1?我现在在 savon 上使用的代码是

require 'savon'
require 'httpclient'
wsdl = "https://example.com/Messages.wsdl"
driver = Savon::Client.new(wsdl)
response = driver.request "someAction"

当我使用 soap4r 时,我可以使用以下代码选择绑定(bind):

require 'httpclient'
require 'soap/wsdlDriver'
wsdl = "https://example.com/Messages.wsdl"
soap_client = SOAP::WSDLDriverFactory.new(wsdl)
driver = soap_client.create_rpc_driver('ExampleService','ES1')

最佳答案

您应该能够在创建 Savon::Client 实例时覆盖端点:

client = Savon::Client.new do
wsdl.document = "https://example.com/Messages.wsdl"
wsdl.endpoint = "https://example.com/service.svc"
end

response = client.request "someAction"

关于Ruby Savon 绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7832306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com