د پروکسي نوماندانې د جلا Ruby Net::HTTP کلاینټونو سره وآزمویئ
د هر پروکسي نوماند لپاره یو Net::HTTP نمونه جوړ کړئ او هغه ځواب ته په کتو ودروئ چې ستاسو عملیات واقعاً ورته اړتیا لري.
د پروکسي لیست یوازې هغه وخت ګټور کیږي چې هر هڅه د هماغه پای ټکي لپاره تنظیم شوی کلاینټ جوړ کړي. د غیر تصدیق شویو HTTP پروکسي له لارې د GET لپاره Net::HTTP داسې کارول کیدای شي:
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څلورم دلیل د پروکسي پورټ غوره کوي؛ uri.host او uri.port لا هم منزل ښیي. دوه بېلګې د HTTP پروکسي لیست څخه ډک کړئ کله چې د غیر تصدیق شویو HTTP پای ټکو له لارې اجازه لرونکی عامه URL ګورئ. request_uri خپله لاره او پوښتنه ساتي. بېلګه عادي د اړیکې او لوستلو ناکامي سمبالوي او د HTTP حالت رارسیدو ته ثبتوي.
دلته هر 2xx ځواب لټون پای ته رسوي. که ستاسو عملیات بل نتیجه تمه لري، هغه معیار په روښانه توګه تعریف کړئ. لیږدول په خپله نه ثابتوي چې غوښتل شوې پاڼه ترلاسه شوې ده.
اتوماتیک تکرار د میتود سره سم وساتئ. هغه POST چې د خپل بدن له لیږلو وروسته وخت تیر شي کیدای شي لیرې غوښتنلیک لا بدل کړی وي؛ د بل پروکسي له لارې بیا هڅه کول هغه اغیز تکرارولی شي. د GET بېلګه د خپل سري معاملو د خوندي بیا پلي کیدو ژمنه نه کوي.