в ответе 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 в коде программы из ответа

Уже не знаю в какую сторону копать и, если честно, отчаялся.


Ответы (0 шт):