Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何设置savon默认超时值_Ruby On Rails_Soap_Savon - Fatal编程技术网

Ruby on rails 如何设置savon默认超时值

Ruby on rails 如何设置savon默认超时值,ruby-on-rails,soap,savon,Ruby On Rails,Soap,Savon,我正在使用savon进行一些api调用,但是响应需要很长时间,因为我遇到超时错误。所以有没有办法更改默认的超时值。我使用的是Savon0.7.9Ruby1.8.7和rails-v2.3.2。savon使用GemHttpi作为传输层的接口。因此,您需要更改http调用的超时时间 下面是一个示例(Savon 1.x) 编辑:Savon 2.x的语法已更改 jira = Savon.client( wsdl: 'http://jira.my-domain.com/rpc/soap/jiraso

我正在使用savon进行一些api调用,但是响应需要很长时间,因为我遇到超时错误。所以有没有办法更改默认的超时值。我使用的是Savon0.7.9Ruby1.8.7和rails-v2.3.2。

savon使用GemHttpi作为传输层的接口。因此,您需要更改http调用的超时时间

下面是一个示例(Savon 1.x)

编辑: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

在Savon 3中,操作如下:

client = Savon.new(wsdl_url)
client.http.send_timeout    = 300
client.http.receive_timeout = 300
client = Savon.new(wsdl_url, MyAdapter.new)
在Savon 3中,不能将这些作为选项传递给构造函数,但可以提供自定义http适配器(以替换默认的Savon::HTTPClient),如下所示:

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

如果你把
http.read\u timeout=300
放在块中,它将不起作用。顺便说一句,那是几秒钟。Savon真的很喜欢改变他们做事的方式。。。谢谢你的更新。