לאחר שבקשת WinHTTP מקבלת 407, השתמשו ב-WinHttpQueryAuthSchemes כדי לבחון את השיטות המוצעות ולבחור אחת שהלקוח והחשבון תומכים בה. הגדירו את פרטי הכניסה על אותה בקשה:

WinHttpSetCredentials(
    requestHandle,
    WINHTTP_AUTH_TARGET_PROXY,
    selectedScheme,
    proxyUser,
    proxyPassword,
    nullptr);

הארגומנט השמור האחרון חייב להיות null. בדקו את התוצאה הבוליאנית, ובמקרה של כשל GetLastError. הצלחה משמעה שה-API קיבל את ההגדרה, ולא שהפרוקסי קיבל את ההתחברות.

שלחו שוב דרך זרימת אימות מבוקרת ובחנו את התגובה. הגבילו ניסיונות חוזרים; זרם גוף בקשה שכבר נוצל חייב להיות ניתן להרצה חוזרת אם הפעולה חוזרת. תגובת 401 מהיעד משתמשת ב-WINHTTP_AUTH_TARGET_SERVER, בשונה מיעד הפרוקסי הזה.

פרטי כניסה אלה חלים על בקשה בודדת. WinHTTP אינו הופך אותם למאגר פרטי כניסה כללי לבקשות מאוחרות יותר. חיבורים מאומתים בשימוש חוזר עלולים להסתיר אתגר אחר באופן זמני, ולכן היישום חייב עדיין לטפל באתגרים עתידיים.

השאירו את בחירת הפרוקסי בנפרד. מחרוזת כתובת הנושאת פרטי כניסה אינה מחליפה את ה-API הזה של ידית הבקשה, כשם שהגעה מוצלחת לנקודת הקצה אינה משלימה את האימות.

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