Странная вещь происходит с моим HttpWebRequest ... Я хочу написать функцию, которая обновляет заголовок авторизации при необходимости (когда мы получаем 401 в ответ). В общем, что-то вроде этого:
try
{
request.Headers.Add(HttpRequestHeader.Authorization, "Bearer " + BadToken);
return request.GetResponse();
}
catch (Exception e)
{
if (e is WebException)
{
var ex = (e as WebException);
var status = (ex.Response as HttpWebResponse)?.StatusCode;
if (status == HttpStatusCode.Unauthorized)
{
request.Headers.Set(HttpRequestHeader.Authorization, "Bearer " + CorrectToken);
return request.GetResponse();
}
}
return null;
}
К сожалению, я все еще получаю 401. Но если я заменю BadToken на CorrectToken в первой строке, я получу 200 с первой попытки. Похоже, что заголовок не обновляется ... Я проверил в отладчике и вижу, что значение изменилось, но поведение говорит само за себя ...
Что здесь происходит?