简单获取法拉第超时
faraday timeout on a simple get
有没有办法在这个简单的 get 方法中添加超时选项?
我正在使用法拉第 3.3。
Faraday.get(url)
四处寻找,我只能在先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?
这就是我现在正在做的事情:
conn = Faraday.new
response = conn.get do |req|
req.url url
req.options.timeout = 2 # 2 seconds
end
试试这个:
conn = Faraday.new do |conn|
conn.options.timeout = 20
end
response = conn.get(url)
更新:
在查看 gem 来源后,我发现无法按照您的意愿进行。
使用get
方法只能设置url, request params and headers。但是要指定超时,您必须访问 @options
of Faraday::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 to request parameter and yields request back:
Faraday::Connection.new.get(url) { |request| request.options.timeout = 20 }
有没有办法在这个简单的 get 方法中添加超时选项?
我正在使用法拉第 3.3。
Faraday.get(url)
四处寻找,我只能在先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?
这就是我现在正在做的事情:
conn = Faraday.new
response = conn.get do |req|
req.url url
req.options.timeout = 2 # 2 seconds
end
试试这个:
conn = Faraday.new do |conn|
conn.options.timeout = 20
end
response = conn.get(url)
更新: 在查看 gem 来源后,我发现无法按照您的意愿进行。
使用get
方法只能设置url, request params and headers。但是要指定超时,您必须访问 @options
of Faraday::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 to request parameter and yields request back:
Faraday::Connection.new.get(url) { |request| request.options.timeout = 20 }