השתמשו באפשרות ה-Basic הייעודית של open-uri עבור החשבון המתווך:

require 'open-uri'

body = URI.open(
  'https://example.com/',
  proxy_http_basic_authentication: [
    'http://203.0.113.10:8080',
    ENV.fetch('PROXY_USER'),
    ENV.fetch('PROXY_PASSWORD')
  ],
  open_timeout: 5,
  read_timeout: 10
) { |response| response.read }

החליפו את נקודת הקצה מהתיעוד וקחו את ערכי החשבון ממקור הסודות המיועד. אל תשימו את הסיסמה בכתובת URL שחריגה או דוח תמיכה עלולים להדפיס מאוחר יותר.

אפשרות OpenReadשימוש
proxy_http_basic_authenticationכתובת הפרוקסי ושם המשתמש/סיסמה הבסיסיים שלו.
proxyבחירת פרוקסי בלי האפשרות המאומתת המשולבת; אספקת שתיהן מעוררת שגיאת ארגומנט.
http_basic_authenticationחשבון שרת היעד.
proxy: nilהפכו קריאה זו לישירה למרות ברירות המחדל של הסביבה.

בלי אפשרות פרוקסי מפורשת, open-uri יכול להשתמש במשתני סביבה של פרוקסי הספציפיים לסכימה. האפשרות המאומתת כבר כוללת את נקודת הקצה שלה; היא אינה זקוקה לערך proxy נוסף.

ממשק זה מטפל באימות Basic של פרוקסי. שירות שדורש מנגנון אחר זקוק ללקוח תואם או לאינטגרציה מאושרת. השאירו את אימות HTTPS פעיל, ואז בדקו סטטוס/תוכן כראוי: התחברות פרוקסי שעובדת אינה מוכיחה שהיעד החזיר את המשאב הצפוי.

מאמרים קשורים