в ответе HTTP-запроса в заголовке Location пусто
Здравствуйте знающие люди! Пожалуйста помогите разобраться!
Есть устройство GoIP32, у него имеется веб-интерфейс.
В браузере вбиваю адрес данного устройства, например http://192.168.199.200 и адрес превращается в http://192.168.101.248/default/en_US/status.html , то есть произошло перенаправление (status code: 303) - это видно в режиме разработчика, там в заголовке ответа Location именно этот адрес... Далее можно вводить логин и пароль. Все, через браузер доступ к GoIP32 получен.
Код на C#:
string GoIPurl = "http://192.168.199.200";
string usrName = "adm";
string usrPass = "qwerty";
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes($"{usrName}:{usrPass}")));
HttpResponseMessage response = await client.GetAsync(GoIPurl);
Console.WriteLine("status code: " + (int)response.StatusCode);
// Выводит: 401 - Unauthorized
Console.WriteLine($"location: {response2.Headers.Location}");
// Выводит: (пусто) = null
Console.WriteLine($"hz: {response2.Headers.WwwAuthenticate}");
// Выводит: Basic realm="Please Login"
}
- Данный код выдает статус-код: 401 (Unauthorized) и на этом всё. Но, если в переменную GoIPurl инициализировать адресом:
string GoIPurl = "http://192.168.101.248/default/en_US/status.html";
То все проходит успешно, т.е. статус "OK" и я могу работать с телом ответа.
- Как реализовать в коде то, что получается в браузере, т.е. почему в браузере в режиме разработчика я вижу, что идет перенаправление 303 и из Location берется тот необходимый URL. Как добиться этого же в самой программе? Программа должна ориентироваться на ответы с "сервера", но в ответах такого URL нет. Помогите, как получить этот нужный http://192.168.101.248/default/en_US/status.html в коде программы из ответа
Уже не знаю в какую сторону копать и, если честно, отчаялся.