HTTParty ফরওয়ার্ড প্রক্সিকে অনুরোধের অপশন হিসেবে নেয়। পরিষেবার URL প্রথম আর্গুমেন্ট হিসেবে রাখুন:

response = HTTParty.get(
  'https://api.example/items',
  http_proxyaddr: 'proxy.example',
  http_proxyport: 8080,
  http_proxyuser: ENV.fetch('PROXY_USER'),
  http_proxypass: ENV.fetch('PROXY_PASSWORD'),
  headers: { 'Authorization' => "Bearer #{ENV.fetch('API_TOKEN')}" },
  open_timeout: 5,
  read_timeout: 15
)
puts response.code

প্রক্সি হোস্ট ও পোর্ট মধ্যস্থকারীকে চিহ্নিত করে। প্রক্সি ব্যবহারকারী ও পাসওয়ার্ড সেখানেই প্রমাণিত হয়। Authorization হেডারটি API-র, যার অ্যাকাউন্ট সম্পূর্ণ আলাদা হতে পারে।

প্রমাণীকরণহীন প্রক্সির জন্য http_proxyuser ও http_proxypass বাদ দিন। অনুমোদিত পাবলিক রুটে পাবলিক API অনুরোধের জন্য HTTP প্রক্সি তালিকা থেকে HTTP ঠিকানা নিন, অনুরোধে বা ক্লাসের ডিফল্টে কোনো প্রক্সি শংসাপত্র না রেখে। হোস্ট ফিল্ডটি প্রক্সি ঠিকানা হিসেবে Net::HTTP-তে যায়; হোস্টনাম পোর্ট থেকে আলাদা করে দিন, গন্তব্য URL বা PAC URL নয়।

HTTParty অন্তর্ভুক্ত একটি র‍্যাপার ক্লাস এর বদলে ডিফল্ট সেট করতে http_proxy ক্লাস মেথড ব্যবহার করতে পারে। অনুরোধের অপশনগুলি যে কল সেগুলি দেয়, সেই কলের জন্য ওই ডিফল্টগুলি অতিক্রম করে।

এটি HTTParty-র ডিফল্ট সংযোগ অ্যাডাপ্টার বর্ণনা করে। কাস্টম connection_adapter নিজের অপশন ব্যাখ্যার দায়িত্বে থাকে, তাই বৈধ সেটিং উপেক্ষিত মনে হলে ওই অ্যাডাপ্টার পরীক্ষা করুন। HTTP স্ট্যাটাস পার্স করা API ডেটা থেকে আলাদা করে পড়ুন; সফল JSON পার্সিং প্রমাণীকরণের ফল নয়।

সম্পর্কিত নিবন্ধ