【发布时间】:2016-09-15 21:09:32
【问题描述】:
我对使用异步调用和 await 完全陌生。我有以下单元测试功能:
public async static void POSTDataHttpContent(string jsonString, string webAddress)
{
HttpClient client = new HttpClient();
StringContent stringContent = new StringContent(jsonString);
HttpResponseMessage response = await client.PostAsync(
webAddress,
stringContent);
Console.WriteLine("response is: " + response);
}
测试完成且没有错误,但我从未在输出中看到 Console.WriteLine 打印语句 - 我不知道为什么。我一直在环顾四周,听起来我可能需要将其设置为一项任务?有人能指出我正确的方向吗?
【问题讨论】:
-
您使用的是哪个测试框架?微软自己的还是 NUnit?您可能希望将返回类型更改为
Task -
您可能希望将返回类型更改为 Task (不是 void - 如果可以帮助,请不要使用 void 作为返回类型);否则你将无法等待它。另外,将 HttpClient 放在 using 块中。
-
我用的是微软的。
-
不要返回
void- 您将丢失所有异常信息 msdn.microsoft.com/en-us/magazine/jj991977.aspx
标签: c# http asynchronous httpclient