2012-04-06 27 views
6
ben yakut 1.9.3 kullanıyorum ve bir URL almak için open-uri kullanmaya çalışıyorum ve her ikisi için proxy kimlik doğrulaması kullanmaya çalışıyor Net:HTTP

Yakut Vekil Kimlik openURI veya net/http

Im kullanarak yayınlamayı deneyin ediyorum

ile/POST GET:

require 'net/http' 
require 'open-uri' 
http = Net::HTTP.new("google.com", 80) 
headers = { 'User-Agent' => 'Ruby 193'} 

resp, data = http.post("/", "name1=value1&name2=value2", headers) 
puts data 

Ve open-uri kendisi için ben POST yapmak alamayan kullandığım:

net/http ile POST isteği yapmaya çalışıyor

data = open("http://google.com/","User-Agent"=> "Ruby 193").read 

Ben

data = open("http://google.com/","User-Agent"=> "Ruby 193", :proxy_http_basic_authentication => ["http://proxy.com:8000/", "proxy-user", "proxy-password"]).read 

Ancak alacak tüm OpenURI::HTTPError: 407 Proxy Authentication Required olduğunu

denedim

(açık-uri için) HTTP Kimlik Doğrulaması ile bir proxy kullanmak için şu değiştirebilecek nasıl. Her şeyi doğruladım ve tarayıcıda aynı kimlik doğrulama ve proxy ayrıntıları ile çalışıyor ancak bunu yapmak için yakut alamıyorum.

http kimlik doğrulamasını düzgün şekilde eklemek için yukarıdaki kodu nasıl değiştiririm? Bu acımasızlığı geçmiş oldu mu?

cevap

14

Dene: kütüphane http denilen sarıcı Net :: HTTP gelince

require "open-uri" 
proxy_uri = URI.parse("http://proxy.com:8000") 

data = open("http://www.whatismyipaddress.com/", :proxy_http_basic_authentication => [proxy_uri, "username", "password"]).read 
puts data 

, Geçenlerde bir Net :: HTTP içine http kimlik doğrulaması ile vekiller için destek uygulanmaktadır. Son çekme isteğime bakarsanız temel uygulamayı görürsünüz.

DÜZENLEME: Umarız bu size doğru yönde ilerlemenizi sağlar.

Net::HTTP::Proxy(proxy_uri.host, proxy_uri.port,"username","password").start('whatismyipaddress.com') do |http| 
    puts http.get('/').body 
end