Àkójọ proxy yóò wúlò nígbà tí gbogbo ìgbìyànjú bá dá olùbára tí a ṣètò fún ibi-ìparí yẹn. Fún GET nípasẹ̀ àwọn proxy HTTP tí kò ní ìjẹ́rìí, a lè lo Net::HTTP báyìí:

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

Àríyànjiyàn kẹrin yan ibudo proxy; uri.host àti uri.port ṣì ń tọ́ka sí ibi tí a ń lọ. Kún àwọn àkọsílẹ̀ méjì tí àpẹẹrẹ náà fi àkójọ proxy HTTP nígbà tí o bá ń yẹ URL gbangba tí a gbà láyè nípasẹ̀ àwọn ibi-ìparí HTTP tí kò ní ìjẹ́rìí. request_uri máa ń pa ọ̀nà àti ìbéèrè rẹ̀ mọ́. Àpẹẹrẹ náà ń ṣàkóso àwọn ìkùnà ìsopọ̀ àti ìkàwé tí ó ṣe déédéé, ó sì ń kọ ipò HTTP sílẹ̀ nígbà tí ọ̀kan bá dé.

Níbí, ìdáhùn 2xx èyíkéyìí máa ń parí ìwárí náà. Bí iṣẹ́ rẹ bá ń retí àbáyọ mìíràn, ṣàlàyé ìlànà yẹn ní kedere. Ìdárúkọ kì í fi ara rẹ̀ hàn pé a ti gba ojú-ìwé tí a fẹ́.

Jẹ́ kí àtúnṣe aládàánìkan bá ọ̀nà mu. POST tí ó kọjá àkókò lẹ́yìn tí a ti fi ara rẹ̀ ránṣẹ́ lè ti yí ohun-èlò tí ó jìnnà padà; gbígbìyànjú lẹ́ẹ̀kan sí nípasẹ̀ proxy mìíràn lè tún ipa yẹn ṣe. Àpẹẹrẹ GET kò ṣèlérí àtúnṣe ààbò fún àwọn ìdúnàádúrà àìlẹ́gbẹ́.

Àwọn àpilẹ̀kọ tó jọra