Välityspalvelinluettelosta tulee hyödyllinen vasta, kun jokainen yritys luo kyseiselle päätepisteelle määritetyn asiakkaan. GET-pyyntöön autentimoimattomien HTTP-välityspalvelinten kautta Net::HTTP:tä voi käyttää näin:

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
end

Neljäs argumentti valitsee välityspalvelimen portin; uri.host ja uri.port osoittavat edelleen kohteen. Täytä esimerkin kaksi merkintää HTTP-välityspalvelinluettelosta, kun tarkistat sallittua julkista URL-osoitetta autentimoimattomien HTTP-päätepisteiden kautta. request_uri säilyttää polkunsa ja kyselynsä. Esimerkki käsittelee tavalliset yhteys- ja lukuvirheet ja kirjaa HTTP-tilan, kun sellainen saapuu.

Tässä mikä tahansa 2xx-vastaus päättää haun. Jos toimintosi odottaa muuta tulosta, määritä kyseinen kriteeri nimenomaisesti. Uudelleenohjaus ei automaattisesti todista, että haluttu sivu on haettu.

Pidä automaattinen toisto menetelmään sopivana. POST, joka aikakatkaistaan rungon lähettämisen jälkeen, on saattanut jo muuttaa etäsovellusta; uusi yritys toisen välityspalvelimen kautta voi toistaa kyseisen vaikutuksen. GET-esimerkki ei lupaa mielivaltaisten tapahtumien turvallista toistoa.

Aiheeseen liittyvät artikkelit