简体   繁体   中英

Ruby - increasing proxy request timeout

I'm trying to access some contents via some proxy servers but I get:

<Errno::ETIMEDOUT: Connection timed out - connect(2)>

I modified the code and tried to increase the timeout as below:

require 'open-uri'
require 'net/http'


response = Net::HTTP::Proxy(proxy_ip, proxy_port).get_response(uri.host, uri.path)
response.start(uri.host) do |http|
  http.open_timeout = 5 
  http.read_timeout = 10
end

Now it doesn't recagnize the open_timeout and start

undefined method `open_timeout=' for #<Net::HTTPOK 200 OK readbody=true>>
undefined method `start..

Any help?

When you call get_response on the Proxy(HTTP) class, you get a Net::HTTPResponse instance, and it doesn't respond to start or open_timeout= .

Use Net::HTTP::Proxy to create an proxied HTTP class, create an instance of that class, and then modify the timeout settings on that instance. And then you can use the instance to fetch contents from behind a proxy.

proxy_http = Net::HTTP.Proxy(proxy_ip, proxy_port).new(uri.host)
proxy_http.open_timeout = 5
proxy_http.read_timeout = 10
response = proxy_http.get(uri.path)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM