ପ୍ରକ୍ସିର ତାଲିକା ସେତେବେଳେ ଉପଯୋଗୀ ହୁଏ ଯେତେବେଳେ ପ୍ରତ୍ୟେକ ପ୍ରୟାସ ସେହି ଏଣ୍ଡପଏଣ୍ଟ ପାଇଁ ବିନ୍ୟାସିତ ଏକ କ୍ଲାଏଣ୍ଟ ସୃଷ୍ଟି କରେ। ପ୍ରମାଣୀକରଣ ବିହୀନ 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 ଉଦାହରଣ ମନଇଚ୍ଛା କାରବାରର ସୁରକ୍ଷିତ ପୁନଃପ୍ରସ୍ତୁତିର ପ୍ରତିଶ୍ରୁତି ଦିଏ ନାହିଁ।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ