Jerin wakilai yakan zama mai amfani ne kawai idan kowace ƙoƙari ta ƙirƙiri abokin ciniki da aka daidaita don wannan ƙarshen wurin. Don GET ta hanyar wakilan HTTP marasa tabbaci, ana iya amfani da Net::HTTP kamar haka:

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

Hujja ta huɗu tana zaɓar tashar wakili; uri.host da uri.port har yanzu suna nuna inda za a je. Cika misalan biyu daga jerin wakilan HTTP lokacin da kake gwada URL na jama'a da aka yarda da shi ta hanyar ƙarshen wuraren HTTP marasa tabbaci. request_uri yana kiyaye hanyarsa da tambayarsa. Misalin yana magance gazawar haɗi da karatu ta yau da kullum kuma yana rubuta matsayin HTTP idan ya zo.

A nan duk wata amsa 2xx tana ƙare binciken. Idan aikinka yana tsammanin wani sakamako, bayyana wannan ma'aunin a fili. Juyawa ba ya tabbatar da kansa cewa an sami shafin da ake so.

Ka riƙe maimaitawa ta atomatik daidai da hanyar. POST da ya ƙare lokaci bayan an aika jikinsa yana iya kasancewa ya riga ya canza aikace-aikacen nesa; sake gwadawa ta wani wakili na iya maimaita wannan tasirin. Misalin GET ba ya yin alkawarin sake kunnawa mai aminci na ma'amaloli na sabani.

Labarai masu alaƙa