【问题标题】:faraday timeout on a simple get简单获取的法拉第超时
【发布时间】:2015-08-28 13:35:54
【问题描述】:

有没有办法在这个简单的 get 方法中添加超时选项?

我正在使用 Faraday 3.3。

Faraday.get(url)

四处搜索后,我只能在先启动连接后应用超时选项,然后再应用超时选项。或者有什么简单的方法?

这就是我现在正在做的事情:

conn = Faraday.new
response = conn.get do |req|
  req.url url
  req.options.timeout = 2 # 2 seconds
end

【问题讨论】:

    标签: ruby-on-rails ruby faraday


    【解决方案1】:

    试试这个:

    conn = Faraday.new do |conn|
      conn.options.timeout = 20
    end
    response = conn.get(url)
    

    更新: 在我查看了 gem 资源之后,我发现没有办法如你所愿。

    使用get 方法,您只能设置url, request params and headers。但是要指定超时,您必须访问@optionsFaraday::Connection 实例。你可以使用attr_reader :options

    conn = Faraday::Connection.new
    conn.options.timeout = 20
    

    或者在 Faraday::Connection 实例的initialization 上:

    Faraday::Connection.new(nil, request: { timeout: 20 })
    

    或者当copies connection parameters请求参数和yields request back时:

    Faraday::Connection.new.get(url) { |request| request.options.timeout = 20 }
    

    【讨论】:

    • 谢谢,这与我所拥有的相似。我在想,如果有办法直接在 Faraday.get 中传递选项。
    • 非常感谢您的澄清。
    猜你喜欢
    • 2011-12-27
    • 1970-01-01
    • 2012-05-06
    • 2019-12-02
    • 2020-03-16
    • 1970-01-01
    • 2013-12-29
    • 2016-08-03
    • 1970-01-01
    相关资源
    最近更新 更多