Konservu Ruby Mechanize agenton por ĉiu proksea seanco
Agordu la prokseon de Ruby Mechanize agento unufoje, reuzu ĝin por rilataj petoj, kaj konscie limigu la staton de kuketoj kaj daŭrajn konektojn.
Se la tasko estas kontroli HTTP-respondojn kaj sekvi ordinarajn ligilojn, plena retumilo ne ĉiam necesas. Ruby Mechanize elmetas la prokseon sur la agento, kiu plenumas tiujn petojn:
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Ĉi tio supozas, ke la biblioteko mechanize estas ŝargita. Por permesata kontrolo de publika paĝo sen proksea aŭtentikigo, la listo de HTTP-prokseoj liveras taŭgajn gastiganto/pordo-valorojn por la ekzemplo. La proksea metodo ankaŭ akceptas uzantnomon kaj pasvorton kiel laŭvolajn trian kaj kvaran argumentojn, kiam la finpunkto tion postulas.
Reuzu la agorditan agenton por petoj, kiuj apartenas al la sama retuma seanco. Ĝi portas kuketojn kaj historion same kiel retajn agordojn. Ŝanĝi la eliran prokseon ne mem kreas novan identecon nek forĵetas ensalutan kuketon.
Por pluraj prokseaj seancoj, donu al ĉiu sian propran agenton anstataŭ ŝanĝi unu komunan agenton dum laboro estas en progreso. La biblioteko ankaŭ dokumentas unikajn konektnomojn, kiam apartigitaj SSL-konektoj necesas; la konstruila nomo en la ekzemplo faras tiun elekton eksplicita.
Grupigi rilatajn URL-kontrolojn laŭ prokseo povas redukti senbezonan reagordadon. Konservu la rezulton ligita al la vojo kaj URL, kiuj produktis ĝin, inkluzive de alidirektadoj kaj eraraj respondoj.
Mechanize ne reproduktas la JavaScript-plenumadon de retumilo. Uzu realan retumilon, kiam la testata konduto dependas de skriptoj, bildigo aŭ retumil-specifa aŭtentikigo. Sukcesa HTTP-elpreno tra la prokseo respondas al la pli mallarĝa demando, ke ĉi tiu agento povis fari tiun peton.