שרתי פרוקסי של Session ב־Python Requests ועדיפות הסביבה
הפכו את הניתוב של Python Requests לצפוי כש־session.proxies, משתני סביבה, הגדרות לבקשה ו־trust_env פועלים יחד.
אם session.proxies מצביע על נקודת קצה אחת אבל הסקריפט משתמש בפרוקסי של המעטפת, השמה מחדש של אותו מילון לא תפתור את ההתנגשות. Requests עשוי למזג הגדרות פרוקסי מהסביבה בעדיפות על ברירות המחדל של Session. בחרו אם Session צריך להמשיך לגלות הגדרות מהסביבה.
שמרו על גילוי מהסביבה וספקו נתיבים בבקשה
העבירו ערכים מפורשים לקריאה הבודדת, כפי שממליץ Requests כדי להימנע מהתנגשות זו בין Session לסביבה:
proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}
with requests.Session() as session:
response = session.get(
"https://example.com/",
proxies=proxies,
timeout=(5, 15),
)
response.raise_for_status()
החליפו את המאזין המקומי בשלכם. בהשוואת נקודות HTTP ציבוריות, בחרו מועמדים מרשימת שרתי פרוקסי HTTP תוך שמירה על מדיניות Session קבועה. זה שולט ברשומות המיפוי שסופקו; בחרו במכוון גם עבור סכמות או מארחים אחרים שהיישום משתמש בהם. שירות, IDE, קונטיינר או מריץ CI עשויים לרשת סביבה שונה מזו של המסוף.
תנו ל־Session לשלוט בהגדרותיו
אם היישום לא אמור לגלות פרוקסי מהסביבה, הגדירו את המדיניות לפני הבקשה הראשונה:
with requests.Session() as session:
session.trust_env = False
session.proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}
response = session.get(
"https://example.com/",
timeout=(5, 15),
)
response.raise_for_status()
trust_env=False משפיע גם על הגדרות תעודות הקשורות לסביבה ועל אימות netrc אוטומטי. הביאו תלות זו בחשבון לפני הבחירה. לחבילת תעודות CA פרטית שאושרה, אפשר להעביר נתיב מפורש:
response = session.get(
"https://example.com/",
timeout=(5, 15),
verify="/path/to/approved-ca-bundle.pem",
)
השתמשו בחבילה שאושרה בפועל והשאירו את האימות פעיל. שמרו Session נפרד לכל מדיניות ניתוב במקום לשנות אחד בזמן שעבודות אחרות משתמשות בו.
אם אף חלופה לא מסבירה את נתיב היישום, השוו Session מבודד ליישום באותה סביבת ריצה וליעד לא מזיק זהה. רשמו אילו משתני פרוקסי קיימים, את ערך trust_env ואם הקריאה מעבירה proxies; השאירו כתובות URL עם פרטי גישה מחוץ ליומנים משותפים. הצלחה בבידוד מכוונת את הבדיקה הבאה ליצירת Session, למתאמים, לזרימות של בקשות מוכנות או לתעבורות מותאמות. בדיקת סביבה עם curl אינה מכריעה כיצד Requests עצמו ממזג הגדרות.