ਜਦੋਂ WinHTTP 407 ਅਤੇ 401 ਵਿਚਕਾਰ ਬਦਲਦਾ ਹੈ
ਚੁਣੀ ਗਈ ਪ੍ਰੌਕਸੀ ਪ੍ਰਮਾਣਿਕਤਾ ਸਥਿਤੀ ਨੂੰ ਬਣਾਈ ਰੱਖੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਤੋਂ ਪਹਿਲਾਂ ਇਸ ਨੂੰ ਮੁੜ ਲਾਗੂ ਕਰੋ, ਨਾਲ ਹੀ ਵੱਖਰੀ ਮੰਜ਼ਿਲ ਚੁਣੌਤੀ ਸੰਭਾਲੋ।
ਇੱਕ WinHTTP ਬੇਨਤੀ ਪ੍ਰੌਕਸੀ ਉੱਤੇ ਪ੍ਰਮਾਣਿਤ ਹੁੰਦੀ ਹੈ, ਵੈੱਬਸਾਈਟ ਦਾ 401 ਪ੍ਰਾਪਤ ਕਰਦੀ ਹੈ, ਫਿਰ ਅਗਲੀ ਭੇਜਣ ਵੇਲੇ ਇੱਕ ਹੋਰ 407 ਪ੍ਰਾਪਤ ਕਰਦੀ ਹੈ। ਪ੍ਰੌਕਸੀ ਅਤੇ ਵੈੱਬਸਾਈਟ ਦੀ ਪ੍ਰਮਾਣਿਕਤਾ ਸਥਿਤੀ ਵੱਖਰੀ ਹੈ, ਅਤੇ ਮੁੜ ਭੇਜਣ ਵਾਲੇ ਰਾਹ ਨੂੰ ਦੋਵੇਂ ਬਣਾਈ ਰੱਖਣੇ ਪੈਂਦੇ ਹਨ।
ਮਾਈਕ੍ਰੋਸੌਫਟ ਦਾ ਮੂਲ WinHTTP ਪ੍ਰਮਾਣਿਕਤਾ ਨਮੂਨਾ ਚੁਣੀ ਗਈ ਪ੍ਰੌਕਸੀ ਸਕੀਮ ਨੂੰ ਇੱਕ ਵੇਰੀਏਬਲ ਵਿੱਚ ਰੱਖਦਾ ਹੈ ਅਤੇ ਉਹ ਸਕੀਮ ਚੁਣੇ ਜਾਣ ਤੋਂ ਬਾਅਦ ਹਰ WinHttpSendRequest ਤੋਂ ਪਹਿਲਾਂ ਪ੍ਰੌਕਸੀ ਖਾਤਾ ਮੁੜ ਲਾਗੂ ਕਰਦਾ ਹੈ।
- ਬੇਨਤੀ ਭੇਜੋ ਅਤੇ ਜਵਾਬ ਦੀ ਜਾਂਚ ਕਰੋ।
- 407 ਲਈ, ਦਿੱਤੀਆਂ ਸਕੀਮਾਂ ਪੁੱਛੋ ਅਤੇ ਚੁਣੀ ਗਈ ਪ੍ਰੌਕਸੀ ਸਕੀਮ ਯਾਦ ਰੱਖੋ।
- ਮੁੜ ਭੇਜਣ ਤੋਂ ਪਹਿਲਾਂ, ਉਸ ਸਕੀਮ ਅਤੇ ਖਾਤੇ ਨਾਲ WINHTTP_AUTH_TARGET_PROXY ਲਈ WinHttpSetCredentials ਕਾਲ ਕਰੋ।
- ਮੰਜ਼ਿਲ ਦੇ 401 ਲਈ, ਇਸ ਦੀ ਸਕੀਮ ਲਓ ਅਤੇ ਅਗਲੀ ਭੇਜਣ ਲਈ ਯਾਦ ਰੱਖੀ ਪ੍ਰੌਕਸੀ ਸਥਿਤੀ ਬਣਾਈ ਰੱਖਦਿਆਂ ਸਰਵਰ ਪ੍ਰਮਾਣ ਪੱਤਰ ਸੈੱਟ ਕਰੋ।
ਨਮੂਨਾ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਸਰਵਰ ਚੁਣੌਤੀ ਜਾਂ ਰੀਡਾਇਰੈਕਟ ਤੋਂ ਬਾਅਦ ਮੁੜ ਪ੍ਰਮਾਣਿਕਤਾ ਨੂੰ ਪ੍ਰੌਕਸੀ ਪ੍ਰਮਾਣ ਪੱਤਰ ਮੁੜ ਲਾਗੂ ਕਰਨ ਦਾ ਕਾਰਨ ਦੱਸਦਾ ਹੈ। ਕਾਲ ਸਿਰਫ਼ ਪਹਿਲੀ 407 ਸ਼ਾਖਾ ਵਿੱਚ ਰੱਖਣ ਨਾਲ ਕੋਈ ਹੋਰ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਰਾਹ ਉਮੀਦ ਕੀਤੀ ਸੈਟਅੱਪ ਤੋਂ ਬਿਨਾਂ ਰਹਿ ਸਕਦਾ ਹੈ।
ਹਰ API ਨਤੀਜਾ ਜਾਂਚੋ ਅਤੇ ਦੁਹਰਾਉਂਦੀਆਂ ਅਸਫਲਤਾਵਾਂ ਨੂੰ ਸੀਮਤ ਰੱਖੋ। ਮਾਈਕ੍ਰੋਸੌਫਟ ਦਾ ਸੰਖੇਪ ਨਮੂਨਾ ਪਿਛਲੀ ਸਥਿਤੀ ਟ੍ਰੈਕ ਕਰਦਾ ਹੈ, ਜਦਕਿ ਉਤਪਾਦਨ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਨੀਤੀ ਨੂੰ ਦੁਹਰਾਉਂਦਾ ਬਦਲਵਾਂ ਕ੍ਰਮ ਵੀ ਪਛਾਣਨਾ ਚਾਹੀਦਾ ਹੈ।
ਜੇ ਅਸਫਲਤਾ ਤੋਂ ਬਾਅਦ ਵਰਤੋਂਕਾਰ ਬਦਲਵਾਂ ਖਾਤਾ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਉਸ ਮੁੜ ਭੇਜਣ ਵਾਲੇ ਰਾਹ ਦੁਆਰਾ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਮੁੱਲ ਅੱਪਡੇਟ ਕਰੋ। WinHttpSetCredentials ਬੇਨਤੀ-ਸੀਮਤ ਹੈ; ਇਹ ਪ੍ਰਕਿਰਿਆ-ਵਿਆਪੀ ਪਾਸਵਰਡ ਭੰਡਾਰ ਨਹੀਂ ਹੈ ਜਿਸ ਦੀ ਸਮੱਗਰੀ ਸਾਰੀਆਂ ਭਵਿੱਖੀ ਬੇਨਤੀਆਂ ਲਈ ਬਦਲ ਦਿੱਤੀ ਜਾਵੇ।