【问题标题】:Httpclient response doesn't sendHttpclient 响应不发送
【发布时间】:2020-12-30 20:14:32
【问题描述】:

我的应用有问题。在我的电脑上一切正常。我的笔记本上的应用程序有问题。我必须调试应用程序,但我的响应不起作用,这是异常The operation was canceled。 Api 工作,因为我在 PostMan 中测试过。我的代码:

 if (httpClient != null)
                {
                    Task<string> response = httpClient.GetStringAsync($"myUrl");

                    string res = response.GetAwaiter().GetResult();

                    if (!string.IsNullOrEmpty(res))
                    {
                        myModel = JsonConvert.DeserializeObject<Model>(res);
                    }
                }

有人知道为什么我的笔记本有问题吗?

【问题讨论】:

  • string res = await response;
  • Is$"myUrl" 是否指向正确的 URL?另外,您为什么不使用 await 进行 GetStringAsync 通话?另一点 - 您的笔记本上的任何代理设置都不允许设置请求?
  • @AlexanderPetrov 为什么要在不同的计算机上工作?
  • @user1672994 我告诉过,网址有效,但在应用程序中我有问题
  • 有意询问$"myUrl" --- 如果myUrl 是您的代码中定义的变量,这不应该是$"{myUrl}" 吗?

标签: c# rest httpclient


【解决方案1】:

将您的代码更改为以下内容:

 if (httpClient != null)
{
     string response = await httpClient.GetStringAsync($"myUrl");

     if (!string.IsNullOrEmpty(response ))
     {
        myModel = JsonConvert.DeserializeObject<Model>(response);
     }
}

无需使用GetAwaiter()

此方法旨在供编译器使用,而不是在应用程序代码中使用。

您需要在异步调用中等待,才能执行实际调用。

【讨论】:

  • 怎么了?这段代码有什么问题?
猜你喜欢
  • 1970-01-01
  • 2017-08-29
  • 1970-01-01
  • 2018-08-07
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
  • 2016-09-13
  • 1970-01-01
相关资源
最近更新 更多