Om uppgiften är att kontrollera HTTP-svar och följa vanliga länkar behövs inte alltid en fullständig webbläsare. Ruby Mechanize exponerar proxyn på agenten som utför dessa förfrågningar:

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

Detta förutsätter att biblioteket mechanize är laddat. För en tillåten kontroll av en offentlig sida utan proxyautentisering ger HTTP-proxylistan lämpliga värd/port-värden för exemplet. Proxy-metoden tar också emot ett användarnamn och lösenord som valfria tredje och fjärde argument när slutpunkten kräver dem.

Återanvänd den konfigurerade agenten för förfrågningar som hör till samma webbläsarsession. Den bär cookies och historik samt nätverksinställningar. Att byta utgående proxy skapar inte i sig en ny identitet och kastar inte bort en inloggningscookie.

För flera proxysessioner, ge var och en sin egen agent i stället för att byta en delad agent medan arbetet pågår. Biblioteket dokumenterar också unika anslutningsnamn när separata SSL-anslutningar krävs; konstruktorns namn i exemplet gör det valet explicit.

Att gruppera relaterade URL-kontroller per proxy kan minska onödig omkonfigurering. Håll resultatet kopplat till den rutt och URL som producerade det, inklusive omdirigeringar och felsvar.

Mechanize återger inte en webbläsares JavaScript-körning. Använd en riktig webbläsare när beteendet som testas beror på skript, rendering eller webbläsarspecifik autentisering. Ett lyckat HTTP-hämtning via proxyn svarar på den snävare frågan att denna agent kunde utföra den förfrågan.

Relaterade artiklar