Próbuję ustawić serwer proxy i użyć go w prosty sposób, tak jak w przypadku documentation. Ale zawsze otrzymuję błąd! Adres i port mają rację z open-uri to działało .. to jest http://proxy:8080
.Jak ustawić proxy w rubysie net/http?
proxy_addr = 'proxy'
proxy_port = 8080
Net::HTTP.new('google.de', nil, proxy_addr, proxy_port).start { |http|
# always proxy via your.proxy.addr:8080
Net::HTTP.get('google.de', '')
}
Co robię źle? Dzięki za wszystkie odpowiedzi!
Trochę wyjaśnienie: 'Net :: HTTP' automatycznie użyje 'Zmienna środowiskowa' http_proxy' tylko po wywołaniu przez 'Net :: HTTP.new'. Użycie 'Net :: HTTP.start' nie użyje zmiennej' http_proxy'environment, ponieważ przekazuje 'nil' dla adresu proxy, jeśli nie jest określony (zamiast podania': ENV'). – cbliard
@cbliard Dobra uwaga. Mimo to nadal możesz korzystać z automatycznego wykrywania proxy w 'NET :: HTTP.start' przy użyciu' NET :: HTTP.start (url.hostname, url.port,: p_port =>: ENV) '. – Aert
@Aert używając ': p_port =>: ENV' działa, ale nie podoba mi się jego czytelność :). Kolejna rzecz, o której warto pamiętać: nazwa użytkownika i hasło z 'http_proxy' nie są czytane (jak w' http: // nazwaużytkownika: hasło @ adres: port'). – cbliard