אימות פרוקסי ב-HTTParty: מארח, יציאה, שם משתמש וסיסמה
העבירו מארח פרוקסי HTTP, יציאה מספרית ופרטי פרוקסי אופציונליים ישירות לבקשת HTTParty, תוך השארת אסימון ה-API בכותרת שלו.
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 מוצלח אינו תוצאת אימות.