אַ ליסטע פֿון פּראָקסיס ווערט נוציק נאָר ווען יעדער פּרוּוו שאַפֿט אַ קליענט וואָס איז אַנגעשטעלט פֿאַר יענעם ענדפּוינט. פֿאַר אַ GET דורך HTTP פּראָקסיס אָן אויטענטיפֿיקאַציע קען מען נוצן 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 ביישפּיל צוזאָגט נישט קיין זיכער איבערשפּילן פֿון באַליבע טראַנזאַקציעס.

פֿאַרבונדענע אַרטיקלען