【发布时间】:2018-10-17 11:56:49
【问题描述】:
我对 Web API 比较陌生。我在 winForm 的客户端编写了如下代码:
using (var client = new HttpClient())
{
List<string> param = new List<string>();
param.Add(LblUnitsConsumed.Text);
param.Add(LblUnitsRemaining.Text);
param.Add(deviceIDtxt.Text);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage rsp = client.PutAsync(WebApiUrl + "/api/transaction/updateDevice/" + param).Result;
}
在运行时将错误显示为“方法 'PutAsync' 没有重载需要 1 个参数”。它对 GetAsync、DeleteAsync 工作得非常好。但是对于 PutAsync 它会引发错误。有人可以帮我解决这个问题。
【问题讨论】:
-
PutAsync和PostAsync用于发送数据。如果你不传递任何数据,你会向服务器发送什么? -
字符串加列表等于什么?可能不是你想的那样。
-
不要访问异步方法的
.Result。您需要await结果,并将您当前的方法标记为async Task或async Task<T>。
标签: c# .net winforms httpclient