await HttpClient.PostAsync 方法编译错误
await HttpClient.PostAsync 方法编译错误
这个问题已经有答案了:
我正在尝试使用以下代码进行POST请求:
string resourceAddress = "url"; string postBody = "jsonbody"; var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage x = await httpClient.PostAsync(resourceAddress, new StringContent(postBody, Encoding.UTF8, "application/json"));
我得到了这个编译错误:
\"await\"运算符只能在异步方法中使用。
有任何想法吗?PostAsync返回Task
......
admin 更改状态以发布 2023年5月21日
你的方法必须标记为async
:
public async ReturnType MethodName() { string resourceAddress = "url"; string postBody = "jsonbody"; var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage x = await httpClient.PostAsync(resourceAddress, new StringContent(postBody, Encoding.UTF8, "application/json")); }
由于我不知道你方法的返回类型、方法名称和参数,我使用了模糊的名称和没有参数。你需要用实际的名称和参数替换它们。
一般来说,每当你想要使用await
运算符(当你想要进行异步调用时),你也必须使用async
运算符。async
运算符用于表示你要等待某些东西。然后,编译器会为你构建一个状态机,该状态机由运行时用于异步执行你的代码。