Ruby – 增加代理请求超时

我试图通过一些代理服务器访问一些内容,但我得到:

 

我修改了代码并尝试增加超时,如下所示:

 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 

现在它没有重新open_timeoutstart

 undefined method `open_timeout=' for #> undefined method `start.. 

有帮助吗?

当您在Proxy(HTTP)类上调用get_response时,您将获得Net::HTTPResponse实例,并且它不响应startopen_timeout=

使用Net::HTTP::Proxy创建代理HTTP类,创建该类的实例,然后修改该实例上的超时设置。 然后,您可以使用实例从代理后面获取内容。

 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)