Eine HTTP-Seite über Socksifys Net::HTTP-Adapter abrufen
Verwenden Sie den Socksify-Net::HTTP-Adapter, erhalten Sie das Anforderungsziel der URL und lesen Sie den zurückgegebenen Antworttext.
Socksify stellt einen Adapter für Net::HTTP bereit. Laden Sie diesen Adapter und verwenden Sie seine dokumentierte Methode socks_proxy:
require 'socksify/http'
uri = URI('http://example.com/?view=compact')
Net::HTTP.socks_proxy('127.0.0.1', 1400)
.start(uri.host, uri.port) do |http|
response = http.get(uri.request_uri)
puts response.body
end
Der lokale Port ist ein Beispiel für einen SOCKS-Endpunkt. Für einen zulässigen Test einer öffentlichen Website über einen SOCKS-Dienst ohne Authentifizierung kann ein kompatibler Kandidat aus der SOCKS-Proxy-Liste diesen Host und Port ersetzen; stimmen Sie das Protokoll auf den installierten Adapter ab. request_uri erhält Pfad und Query und ergänzt einen Schrägstrich, wenn die URL keinen ausdrücklichen Pfad hat. Die Inspektionsausgabe des Antwortobjekts auszugeben ist etwas anderes, als dessen Text zu lesen.
Die Blockform schließt die HTTP-Sitzung, wenn der Block endet. Dieses Beispiel gilt für ein HTTP-Ziel; ein HTTPS-Client benötigt zusätzlich seine übliche TLS-Konfiguration.
Ältere Schnipsel schreiben die Factory als SOCKSProxy. Die aktuelle Implementierung des Projekts behält das als Alias bei, während seine README socks_proxy verwendet. Prüfen Sie die installierte Kombination aus Socksify und Ruby, weil der Adapter mit Interna von Net::HTTP zusammenarbeitet.