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_timeout
并start
undefined method `open_timeout=' for #> undefined method `start..
有帮助吗?
当您在Proxy(HTTP)类上调用get_response
时,您将获得Net::HTTPResponse
实例,并且它不响应start
或open_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)
- Ruby未定义的方法`bytesize’用于#
- 使用Ruby将XML请求发布到Web服务器
- 在发出请求之前从Ruby Net :: HTTP请求获取标头
- 在获取网页时,如何捕获Ruby中的“处理时出错:缓冲区错误”?
- 使用Ruby的Net / HTTP模块,我可以发送原始JSON数据吗?
- 如何使用Ruby在文本文件中搜索完全匹配的字符串?
- 使用Net :: HTTP的块forms的HTTPS请求 – 是否可能?
- 在RoR中,如何从“无法打开TCP连接…(一般SOCKS服务器故障)”错误中恢复?
- OpenSSL :: SSL :: SSLError:SSL_connect SYSCALL返回= 5 errno = 0 state = SSLv3读取服务器hello A