await HttpClient.PostAsync 方法编译错误

34 浏览
0 Comments

await HttpClient.PostAsync 方法编译错误

这个问题已经有答案了

如何以及何时使用\"async\"和\"await\"

我正在尝试使用以下代码进行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日
0
0 Comments

你的方法必须标记为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运算符用于表示你要等待某些东西。然后,编译器会为你构建一个状态机,该状态机由运行时用于异步执行你的代码。

0