পৃথক 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 অন্ত বিন্দুৰ জৰিয়তে অনুমোদিত ৰাজহুৱা URL পৰীক্ষা কৰোঁতে HTTP প্ৰক্সি তালিকাৰ পৰা উদাহৰণৰ দুটা ভৰ্তি পূৰণ কৰক। request_uri এ ইয়াৰ পথ আৰু কুৱেৰী সংৰক্ষণ কৰে। উদাহৰণটোৱে সাধাৰণ সংযোগ আৰু পঢ়াৰ বিফলতা সামৰি লয় আৰু HTTP স্থিতি অহা সময়ত লিপিবদ্ধ কৰে।
ইয়াত যিকোনো 2xx সঁহাৰিয়ে সন্ধান বন্ধ কৰে। যদি আপোনাৰ কাৰ্যই অন্য ফলাফল আশা কৰে, সেই মাপকাঠী স্পষ্টকৈ সংজ্ঞায়িত কৰক। ৰিডাইৰেক্টে স্বয়ংক্ৰিয়ভাৱে প্ৰমাণ নকৰে যে ইচ্ছিত পৃষ্ঠাখন লাভ কৰা হৈছে।
স্বয়ংক্ৰিয় পুনৰাবৃত্তি পদ্ধতিৰ লগত খাপ খুৱাই ৰাখক। শৰীৰ পঠিওৱাৰ পিছত সময় অতিবাহিত হোৱা POST এ দূৰৱৰ্তী প্ৰয়োগটো ইতিমধ্যে সলনি কৰি থাকিব পাৰে; অন্য প্ৰক্সিৰ জৰিয়তে পুনৰ চেষ্টা কৰিলে সেই প্ৰভাৱ পুনৰাবৃত্তি হ’ব পাৰে। GET উদাহৰণে যাদৃচ্ছিক লেনদেনৰ সুৰক্ষিত পুনৰাবৃত্তিৰ প্ৰতিশ্ৰুতি নিদিয়ে।