我想知道这段代码是否按预期工作(将字符串发送到Web应用程序):
using (HttpClient httpClient = Util.CreateHttpClient())
{
httpClient.PostAsJsonAsync("theurl", somestr);
}
由于PostAsJsonAsync
没有立即完成执行,并且在退出块时处理了httpClient,请求是否总是正确发送?
或者我必须等待这样的任务:
using (HttpClient httpClient = Util.CreateHttpClient())
{
httpClient.PostAsJsonAsync("theurl", somestr).Wait();
}
答案 0 :(得分:2)
使用HttpClient
的异步API时,建议您使用await
这些方法:
using (HttpClient httpClient = Util.CreateHttpClient())
{
await httpClient.PostAsJsonAsync("theurl", somestr);
}
这样,您可以确保完成异步方法,并确保在发送请求之前不会释放HttpClient
。
如果您需要同步API,请考虑查看WebClient
。
答案 1 :(得分:0)
您必须等待或保持客户端的范围。