يقبل HTTParty الوكيل الأمامي كخيارات للطلب. أبقِ عنوان الخدمة هو الوسيط الأول:

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؛ قدّم اسم المضيف منفصلًا عن منفذه لا عنوان وجهة أو عنوان PAC.

يمكن لصنف غلاف يضم HTTParty أن يستخدم بدلًا من ذلك دالة الصنف http_proxy لتعيين القيم الافتراضية. وتتجاوز خيارات الطلب تلك القيم الافتراضية للنداء الذي يقدّمها.

يصف هذا مهايئ الاتصال الافتراضي في HTTParty. ومهايئ connection_adapter المخصص مسؤول عن تفسير خياراته، لذا افحص ذلك المهايئ عندما يبدو إعداد صالح مُهمَلًا. اقرأ حالة HTTP منفصلة عن بيانات API المحلَّلة؛ فنجاح تحليل JSON ليس نتيجة مصادقة.

مقالات ذات صلة