伙计们,我在await response.Content.ReadAsAsync<ManifestStatusEntity>();
因为无法等待
我已经看过教程并实现了代码但不确定错误。
public async Task dataRowSpy_RowChanged(object sender, DataRowChangedEventArgs e)
{
//TODO: Process the new request
using (var client = new HttpClient())
{
try
{
client.BaseAddress = new Uri("http://localhost:9667/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
HttpResponseMessage response = await client.GetAsync("api/psms/getmanifeststatus").Result;
if (response.IsSuccessStatusCode)
{
ManifestStatusEntity manifestStatusEntity = await response.Content.ReadAsAsync<ManifestStatusEntity>();
newManifestVersion = Convert.ToInt32(manifestStatusEntity.Version);
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
}
此Web API获取Int值。 还有什么我需要实现的吗?
答案 0 :(得分:3)
代码中的实际问题更进一步,在这里:
HttpResponseMessage response = await client.GetAsync("api/psms/getmanifeststatus").Result;
Await关键字将异步返回任务的结果。 .Result
属性将同步返回任务的结果。问题是,您正在调用.Result
,它同步返回HttpResponseMessage
,然后在HttpResponseMessage
对象上调用等待而不是任务。
HttpResponseMessage response = await client.GetAsync("api/psms/getmanifeststatus");
试试这个。