how to set savon default timeout value

倖福魔咒の 提交于 2019-12-10 02:54:24

问题


I am using savon to make some api calls but its taking long time to respond because of that i am getting time out errors.so is there any way to change the default value of timeout. I am using savon 0.7.9 ruby 1.8.7 and rails -v 2.3.2.


回答1:


Savon uses the gem HTTPI as interface to the transport layer. Therefore you need to change the timeout for the http calls.

here an example (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

EDIT: the syntax has changed for 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



回答2:


In Savon 3, the operation is as follows:

client = Savon.new(wsdl_url)
client.http.send_timeout    = 300
client.http.receive_timeout = 300

In Savon 3, you can't pass these in as options to the constructor, but you can supply a custom http adapter (to replace the default Savon::HTTPClient) as follows:

client = Savon.new(wsdl_url, MyAdapter.new)


来源:https://stackoverflow.com/questions/6384230/how-to-set-savon-default-timeout-value

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!