我正在尝试使用以下代码发布帖子请求:
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<HttpResponseMessage>
...
答案 0 :(得分:2)
您的方法必须标记为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
运算符用于表示您要转到await
。然后,编译器为您构建一个状态机,运行时使用该状态机异步执行代码。