Dán àwọn olùdíje proxy wò pẹ̀lú àwọn olùbára Ruby Net::HTTP ọ̀tọ̀ọ̀tọ̀
Ṣe Net::HTTP kan fún olùdíje proxy kọ̀ọ̀kan kí o sì dúró ní ìbámu pẹ̀lú ìdáhùn tí iṣẹ́ rẹ nílò ní tòótọ́.
À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ẹ́.