为了账号安全,请及时绑定邮箱和手机立即绑定

HttpClient 上的 UWP 等待不起作用

HttpClient 上的 UWP 等待不起作用

C#
Cats萌萌 2021-10-24 17:02:13
我正在尝试从 Web API 获取 JSON 响应。我能够使用类似的代码在控制台应用程序中检索响应,但是在 UWPawait httpClient.GetAsync(uri);中无法按预期工作。public static async Task<double> GetJson(){    using (var httpClient = new HttpClient())    {        Uri uri= new Uri("https://api.cryptonator.com/api/ticker/btc-usd");        HttpResponseMessage response = await httpClient.GetAsync(uri);        //Below code is not relevent since code is failing on await        var result = response.Content.ReadAsStringAsync();        var jsonResponse = Json.ToObjectAsync<ExchangeRate>(result);//        jsonResponse.Wait();//        ExchangeRate exchangeRateObj = jsonResponse.Result;//        return 1.2;//    }}后面的代码:private void Button_Click(object sender,RoutedEventArgs e){var ROC__ =  MyClass.GetJson();ROC__.Wait();currency_.ROC = ROC__.Result;}在这里不起作用是什么意思?它应该连接到 URL 并获取响应,并且应该为响应分配一些值。相反,在调试时使用 step into 或 Continue 控制退出当前行也跳过后续行。(我也把调试放在下一行),应用程序只是冻结。我HTTPClient在 Stackoverflow 和其他博客上参考了类似的 JSON 解析代码,建议使用System.Net.Http或Windows.Web.Http相关问题: how-to-get-a-json-string-from-url我认为任务正在运行并且它一直处于等待模式,这看起来很奇怪,因为调试模式不显示正在运行的代码,它只显示ready. 也不例外。我做错了什么或错过了一些 Nuget 参考?请建议。PS:它不变的情况下用httpClient.GetStringAsync的方法了。在控制台应用程序上,这条线有效,但在 UWP 上无效 var json = new WebClient().DownloadString("https://api.cryptonator.com/api/ticker/btc-usd");不重复httpclient-getasync-never-returns-on-xamarin-android它不是 Xamarin,尽管它是基于 C# 的,但我的代码是不同的,它不是我所关心的 WebApiClient 或 GetInformationAsync 方法。
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 227 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信