Als de taak het controleren van HTTP-responses en het volgen van gewone links is, is een volledige browser niet altijd nodig. Ruby Mechanize stelt de proxy beschikbaar op de agent die die verzoeken uitvoert:

agent = Mechanize.new('office-route')
begin
  agent.set_proxy('proxy.example', 8080)
  page = agent.get('https://www.example.com/')
  puts page.code
ensure
  agent.shutdown
end

Dit veronderstelt dat de bibliotheek mechanize is geladen. Voor een toegestane controle van een openbare pagina zonder proxy-authenticatie biedt de HTTP-proxylijst geschikte host/poortwaarden voor het voorbeeld. De proxy-methode accepteert ook een gebruikersnaam en wachtwoord als optionele derde en vierde argumenten wanneer het endpoint die vereist.

Hergebruik de geconfigureerde agent voor verzoeken die bij dezelfde browsersessie horen. Hij draagt cookies en geschiedenis evenals netwerkinstellingen. Het wisselen van de uitgaande proxy maakt op zichzelf geen nieuwe identiteit en gooit geen login-cookie weg.

Geef bij meerdere proxysessies elk een eigen agent in plaats van één gedeelde agent te wisselen terwijl er werk loopt. De bibliotheek documenteert ook unieke verbindingsnamen wanneer gescheiden SSL-verbindingen nodig zijn; de constructornaam in het voorbeeld maakt die keuze expliciet.

Verwante URL-controles per proxy groeperen kan onnodige herconfiguratie verminderen. Houd het resultaat gekoppeld aan de route en URL die het hebben opgeleverd, inclusief redirects en foutresponses.

Mechanize reproduceert de JavaScript-uitvoering van een browser niet. Gebruik een echte browser wanneer het geteste gedrag afhangt van scripts, rendering of browserspecifieke authenticatie. Een geslaagde HTTP-fetch via de proxy beantwoordt de nauwere vraag of deze agent dat verzoek kon doen.

Gerelateerde artikelen