我正在使用 savon 进行一些 api 调用,但它需要很长时间才能响应,因为我得到了超时错误。所以有什么方法可以更改超时的默认值。我正在使用 savon 0.7.9 ruby 1.8.7 和 rails -v 2.3.2。
问问题
8165 次
2 回答
23
Savon 使用 gem HTTPI 作为传输层的接口。因此,您需要更改 http 调用的超时时间。
这是一个例子(Savon 1.x)
jira = Savon::Client.new do
wsdl.document = 'http://jira.my-domain.com/rpc/soap/jirasoapservice-v2?wsdl'
end
jira.http.read_timeout = 300
编辑:Savon 2.x 的语法已更改
jira = Savon.client(
wsdl: 'http://jira.my-domain.com/rpc/soap/jirasoapservice-v2?wsdl',
open_timeout: 300,
read_timeout: 300,
ssl_verify_mode: :none)
p jira.operations
于 2011-06-20T03:32:16.833 回答
1
在Savon 3中,操作如下:
client = Savon.new(wsdl_url)
client.http.send_timeout = 300
client.http.receive_timeout = 300
在 Savon 3 中,您不能将这些作为选项传递给构造函数,但您可以提供自定义 http 适配器(以替换默认的 Savon::HTTPClient),如下所示:
client = Savon.new(wsdl_url, MyAdapter.new)
于 2014-05-15T15:06:20.833 回答