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 ปลายทางหรือ URL PAC

คลาสห่อที่รวม HTTParty ไว้สามารถ ใช้เมธอดของคลาส http_proxy เพื่อกำหนดค่าเริ่มต้น แทนได้ ตัวเลือกของคำขอจะแทนที่ค่าเริ่มต้นเหล่านั้นสำหรับการเรียกที่ระบุตัวเลือกนั้น

นี่อธิบายอะแดปเตอร์การเชื่อมต่อเริ่มต้นของ HTTParty connection_adapter ที่กำหนดเองมีหน้าที่ตีความตัวเลือกของมัน ดังนั้นให้ตรวจสอบอะแดปเตอร์นั้นเมื่อการตั้งค่าที่ถูกต้องดูเหมือนถูกเพิกเฉย ให้อ่านสถานะ HTTP แยกจากข้อมูล API ที่แยกวิเคราะห์แล้ว การแยกวิเคราะห์ JSON สำเร็จไม่ใช่ผลลัพธ์ของการยืนยันตัวตน

บทความที่เกี่ยวข้อง