Jos tehtävä on HTTP-vastausten tarkistaminen ja tavallisten linkkien seuraaminen, täysi selain ei ole aina tarpeen. Ruby Mechanize paljastaa välityspalvelimen agentille, joka tekee ne pyynnöt:

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

Tämä edellyttää, että mechanize-kirjasto on ladattu. Sallittua julkisen sivun tarkistusta varten ilman välityspalvelimen todennusta HTTP-välityspalvelinluettelo tarjoaa sopivat isäntä/portti-arvot esimerkille. Proxy-metodi hyväksyy myös käyttäjänimen ja salasanan valinnaisina kolmantena ja neljäntenä argumenttina, kun päätepiste vaatii ne.

Käytä määritettyä agenttia uudelleen pyyntöihin, jotka kuuluvat samaan selausistuntoon. Se kantaa evästeet ja historian sekä verkkoasetukset. Lähtevän välityspalvelimen vaihtaminen ei sinänsä luo uutta identiteettiä eikä hylkää kirjautumisevästettä.

Anna usealle välityspalvelinistunnolle kullekin oma agentti sen sijaan, että vaihtaisit yhtä jaettua agenttia työn ollessa käynnissä. Kirjasto dokumentoi myös yksilölliset yhteyksien nimet, kun erillisiä SSL-yhteyksiä tarvitaan; esimerkin konstruktorin nimi tekee valinnan selväksi.

Liittyvien URL-tarkistusten ryhmittely välityspalvelimen mukaan voi vähentää tarpeetonta uudelleenmääritystä. Pidä tulos sidottuna reittiin ja URL-osoitteeseen, jotka sen tuottivat, mukaan lukien uudelleenohjaukset ja virhevastaukset.

Mechanize ei toista selaimen JavaScriptin suoritusta. Käytä oikeaa selainta, kun testattava käyttäytyminen riippuu skripteistä, renderöinnistä tai selainkohtaisesta todennuksesta. Onnistunut HTTP-nouto välityspalvelimen kautta vastaa kapeampaan kysymykseen siitä, että tämä agentti pystyi tekemään kyseisen pyynnön.

Aiheeseen liittyvät artikkelit