Ich versuche, einen Proxy zu setzen und es in einer einfachen Get-Anfrage wie in der documentation zu verwenden. Aber ich erhalte immer einen Fehler! Die Adresse und Port sind richtig mit Open-Uri es hat funktioniert .. es ist http://proxy:8080
.Wie stelle ich einen Proxy in Rubys Net/http ein?
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', '')
}
Was mache ich falsch? Danke für alle Antworten!
Eine kleine Klarstellung: 'Net :: HTTP' wird automatisch verwenden 'http_proxy' Umgebungsvariable nur beim Aufruf über' Net :: HTTP.new'. Die Verwendung von 'Net :: HTTP.start' wird nicht die 'http_proxy'environment-Variable verwenden, da sie für die Proxy-Adresse' nil' übergibt, wenn sie nicht angegeben wird (statt ': ENV' zu übergeben). – cbliard
@cbliard Guter Punkt. Trotzdem können Sie die automatische Erkennung von Proxy in 'NET :: HTTP.start' verwenden, indem Sie' NET :: HTTP.start (url.hostname, url.port,: p_port =>: ENV) 'verwenden. – Aert
@Aert mit ': p_port =>: ENV' funktioniert, aber ich mag seine Lesbarkeit nicht :). Eine andere Sache zu bemerken: Benutzername und Passwort von 'http_proxy' werden nicht gelesen (wie in' http: // Benutzername: Passwort @ Adresse: Port'). – cbliard