Probatu proxy hautagaiak Ruby Net::HTTP bezero bereiziekin
Sortu Net::HTTP instantzia bat proxy hautagai bakoitzeko eta gelditu zure eragiketak benetan behar duen erantzunaren arabera.
Proxy zerrenda bat baliagarria da saiakera bakoitzak amaiera-puntu horretarako konfiguratutako bezero bat sortzen duenean soilik. Autentifikaziorik gabeko HTTP proxien bidez GET bat egiteko, Net::HTTP horrela erabil daiteke:
require 'net/http'
uri = URI('https://www.example.com/status')
proxies = ['http://proxy-a.example:8080',
'http://proxy-b.example:8080']
proxies.each do |value|
proxy = URI(value)
http = Net::HTTP.new(uri.host, uri.port, proxy.host, proxy.port)
http.use_ssl = uri.scheme == 'https'
http.open_timeout = 5
http.read_timeout = 10
begin
response = http.get(uri.request_uri)
puts "#{proxy.host}:#{proxy.port} #{response.code}"
break if response.is_a?(Net::HTTPSuccess)
rescue Net::OpenTimeout, Net::ReadTimeout, SocketError, SystemCallError, IOError => error
warn "#{proxy.host}:#{proxy.port} #{error.class}"
end
endLaugarren argumentuak proxy ataka aukeratzen du; uri.host eta uri.port helmuga adierazten dute oraindik. Bete adibideko bi sarrerak HTTP proxy zerrendatik baimendutako URL publiko bat autentifikaziorik gabeko HTTP amaiera-puntuen bidez egiaztatzen duzunean. request_urik bere bidea eta kontsulta gordetzen ditu. Adibideak ohiko konexio- eta irakurketa-hutsegiteak kudeatzen ditu eta HTTP egoera bat iristen denean erregistratzen du.
Hemen 2xx erantzun edozeinek bilaketa amaitzen du. Zure eragiketak beste emaitza bat espero badu, definitu irizpide hori modu esplizituan. Birbideratze batek ez du automatikoki frogatzen nahi den orria lortu denik.
Eduki errepikapen automatikoa metodoari egokitua. Gorputza bidali ondoren denboraz kanpo geratzen den POST batek urruneko aplikazioa dagoeneko aldatu dezake; beste proxy baten bidez berriro saiatzeak efektu hori errepika dezake. GET adibideak ez du transakzio arbitrarioen errepikapen segurua agintzen.