После обновления версии пакета Microsoft.NETCore.UniversalWindowsPlatform
в моем приложении UWP с 5.0.0 до 6.2.9, HttpClient.GetAsync(requestUri)
не загружает весь контент с URL.
Я использую HttpClient.GetAsync()
дляполучить содержимое страницы, а затем извлечь из нее некоторую информацию. например ссылка . С 5.0.0 она работала как ожидалось, и весь контент страницы был загружен. Но после обновления до 6.2.9 похоже, что только схема загружается , а не содержимое .
Одна вещь, которую я заметил, это то, что расположение System.Net.Http.dll имеетмежду версиями:
5.0.0: C: \ Users \ xx.nuget \ packages \ system.net.http \ 4.0.0 \ ref \ netcore50 \ System.Net. Http.dll
6.2.9: C: \ Program Files (x86) \ Microsoft SDKs \ UWPNuGetPackages \ system.net.http \ 4.1.0 \ ref \ netcore50 \ System.Net.Http.dll
Это код, который я использую:
public static async void GetDataAsync(string url, Action<string> OnSuccess, Action<string> OnFailure)
{
HttpClient _floatHttpClient = new HttpClient();
string responseText = null;
try
{
HttpResponseMessage response = await _floatHttpClient.GetAsync(url);
response.EnsureSuccessStatusCode();
responseText = await response.Content.ReadAsStringAsync();
OnSuccess(responseText);
}
catch (Exception ex)
{
OnFailure(ex.ToString());
}
}
Как загрузить полный контент из URL с пакетом 6.2.9?
Это метод вызова.
private void def_click(object sender, RoutedEventArgs e)
{
DictDialog dictDialog = new DictDialog(Contentgrid.ActualWidth, Contentgrid.ActualHeight);
dictDialog.ShowAsync();
string url = "https://www.bing.com/search?q=+definition:" + dictWord + "&setmkt=en-us&setlang=en-us";
WebRequest.GetDataAsync(url, (string html) =>
{
if (html != null)
{
bool defFound = false;
string def = readerVM.GetDefinitionBing(html, out defFound);
if (defFound == true)
{
dictDialog.LoadHtml(def);
}
else
{
dictDialog.ShowNoDefMsg();
}
}
else
{
dictDialog.LoadFailed();
}
},
(string error) =>
{
dictDialog.LoadFailed();
});
}