Starpniekserveru saraksts kļūst noderīgs tikai tad, kad katrs mēģinājums izveido šim galapunktam konfigurētu klientu. Lai veiktu GET caur neautentificētiem HTTP starpniekserveriem, Net::HTTP var izmantot šādi:

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

Ceturtais arguments izvēlas starpniekservera portu; uri.host un uri.port joprojām norāda galamērķi. Aizpildiet abus piemēra ierakstus no HTTP starpniekserveru saraksta, kad pārbaudāt atļautu publisku URL caur neautentificētiem HTTP galapunktiem. request_uri saglabā savu ceļu un vaicājumu. Piemērs apstrādā parastas savienojuma un lasīšanas kļūdas un pieraksta HTTP statusu, kad tas pienāk.

Šeit jebkura 2xx atbilde pārtrauc meklēšanu. Ja jūsu darbība gaida citu rezultātu, skaidri definējiet šo kritēriju. Pārvirzīšana pati par sevi nepierāda, ka vēlamā lapa ir iegūta.

Turiet automātisko atkārtošanu atbilstošu metodei. POST, kura laiks beidzas pēc satura nosūtīšanas, var jau būt mainījis attālo lietojumprogrammu; mēģinājums vēlreiz caur citu starpniekserveri var atkārtot šo efektu. GET piemērs nesola drošu patvaļīgu darījumu atkārtošanu.

Saistītie raksti