如何设置savon默认超时值

发布于 2024-11-15 19:06:52 字数 119 浏览 4 评论 0原文

我正在使用 savon 进行一些 api 调用,但它需要很长时间才能响应,因为我收到超时错误。所以有什么方法可以更改超时的默认值。我正在使用 savon 0.7.9 ruby​​ 1.8.7 和rails -v 2.3.2。

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我恋#小黄人 2024-11-22 19:06:52

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

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
与酒说心事 2024-11-22 19:06:52

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)

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)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文