Ruby open-uri代理身份验证失败

时间:2015-09-28 08:40:16

标签: ruby http proxy open-uri

我正在使用Nokogiri编写本机Ruby脚本来废弃网站,每当我将代理选项传递给open-uri open()方法时,它都会返回407 Proxy Authentication Required,但我的选项确实具有身份验证详细信息,这是我的代码

proxy_url = URI.parse("http://12.34.567.89:PORT")
session = Nokogiri::HTML(open("http://google.com", :proxy_http_basic_authentication =>[proxy_url, "username", "password"]

注意:由于我的代理是高级的,我已经用假的代理取代了真正的代理凭证

1 个答案:

答案 0 :(得分:0)

我在工作中有一个限制性代理,但是后续工作。 使用您的代理凭据尝试代码。 我在这里使用Nokogiri进行解析,但你并不需要它来获取HTML。

require 'net/http' 
require 'uri'
require 'nokogiri'

url = 'http://stackoverflow.com/questions/32818853/ruby-open-uri-proxy-authentication-fails'

proxy_host, proxy_port, proxy_user, proxy_pass = '****', 8080, "*****", "*****" 
uri = URI.parse(url)

Net::HTTP::Proxy(proxy_host, proxy_port, proxy_user, proxy_pass).start(uri.host, uri.port) do |http|
  http.get(uri.path) do |str|
    puts Nokogiri::HTML(str).text
  end
end