发现问题了!
我用来测试的代码是这样的:
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://www.google.es/");
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = client.GetAsync("").Result;
if (response.IsSuccessStatusCode)
{
text = response.Content.ReadAsStringAsync().Result;
}
}
问题是在 GetAsync 中使用 Result。我不知道为什么,但是如果我更改为 await client.GetAsync(""); 效果很好
在我的应用程序中,我有等待但顶级方法不是异步的代码,我使用.Result。解决方案是在调用异步方法时不使用 .Result (我不知道它是适用于每个方法还是仅适用于 HttpClient 方法)。POST 工作正常,因为它们采用异步方法。