【发布时间】:2014-07-16 11:33:37
【问题描述】:
我第一次使用 .net 的 Httpclient,发现它很难。我已经设法调用服务器并从它接收响应,但一直停留在从响应中读取。这是我的代码:
if (Method == HttpVerb.POST)
response = client.PostAsync(domain, new StringContent(parameters)).Result;
else
response = client.GetAsync(domain).Result;
if (response != null)
{
var responseValue = string.Empty;
Task task = response.Content.ReadAsStreamAsync().ContinueWith(t =>
{
var stream = t.Result;
using (var reader = new StreamReader(stream))
{
responseValue = reader.ReadToEnd();
}
});
return responseValue;
}
responseValue 中包含 {},尽管服务正在返回数据。我应该如何解决这个问题?
该项目在 .Net 4 中。
【问题讨论】:
-
您使用的是 wcf 服务还是 Web 服务?响应状态如何? responseValue.StatusCode = ?
-
返回之前不应该
awaiting任务吗? -
@PrinceT 我正在呼叫休息服务
-
@DavidG 我应该在哪里使用 await?好吧,我把 await VS 放在哪里都显示错误 await 运算符只能在异步方法中使用
-
@Haris 因为你的函数不是异步的,所以使用
Task.Wait(),检查我的答案。
标签: c# .net httpclient