Мне нужно отобразить несколько веб-страниц с удаленного веб-сервера Apache для приложения IoT Core, которое я разрабатываю. Я использовал метод класса WebView .Navigate() для незащищенных страниц и работает очень аккуратно. Однако для моего проекта мне нужно сначала войти в веб-сервер (имя пользователя + пароль), а затем извлечь информацию со страниц, но я не знаю, как это сделать, используя класс WebView. Я невежественна.UWP WebView - Проблемы с регистрацией веб-сервера при отображении содержимого веб-сервера
Я нашел решение, которое использует класс WebBrowser Navigate(), посылая учетные данные в виде кодированной строки с базой 64, но Navigate() WebView позволяет только один аргумент, URI и ничего больше. Кажется, я не могу найти класс WebBrowser.
Я уже пытался вставлять имя пользователя/пароль в URI, но это не работает должным образом, и я знаю, это не очень хорошая идея, чтобы сделать это так.
Возможно ли достичь этого с помощью WebView? Любые предложения/идеи?
Любая помощь оценили
Edit: Я нашел решение, которое работает хорошо для моей проблемы, я отправляю его в случае, если это может помочь кому-то с подобными проблемами.
Uri req_uri = new Uri(uri_list[i]);
HttpBaseProtocolFilter filter = new HttpBaseProtocolFilter();
filter.ServerCredential = new PasswordCredential(req_uri.ToString(), "username", "password");
HttpCookieCollection cookiejar = filter.CookieManager.GetCookies(req_uri);
if (cookiejar.Count > 0)
{
foreach (HttpCookie cookie in cookiejar)
{
filter.CookieManager.SetCookie(cookie);
}
}
Windows.Web.Http.HttpClient client = new Windows.Web.Http.HttpClient(filter);
Windows.Web.Http.HttpRequestMessage http_req = new Windows.Web.Http.HttpRequestMessage();
http_req.Method = Windows.Web.Http.HttpMethod.Get;
http_req.RequestUri = req_uri;
var clientResponse = client.GetAsync(req_uri);
webView.NavigateWithHttpRequestMessage(http_req);
http_req.Dispose();
client.Dispose();
Я на самом деле удалось решить после нескольких попыток следовать вашему подходу, а также использовать HttpBaseProtocolFilter, который работает как HttpClientHandler для пространств имен UWP Windows.Web.Http и может содержать учетные данные auth внутри (ServerCredential) для входа. Очень признателен. –