HttpClient不支持PostAsJsonAsync方法

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (331)

我想从我的Web应用程序调用一个Web API。使用.net 4.5和编写代码时,我得到一个错误HttpClient,它不包含一个定义PostAsJsonAsync方法

HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:51093/");
client.DefaultRequestHeaders.Accept.Add(
   new MediaTypeWithQualityHeaderValue("application/json"));
var user = new Users();
user.AgentCode = 100;
user.Remarks = "Test";
user.CollectionDate = System.DateTime.Today;
user.RemittanceDate = System.DateTime.Today;
user.TotalAmount = 1000;
user.OrgBranchID = 101;

var response = client.PostAsJsonAsync("api/AgentCollection", user).Result;

我收到错误消息:

Error:  'System.Net.Http.HttpClient' does not contain a definition for 'PostAsJsonAsync' and
no extension method 'PostAsJsonAsync' accepting a first argument of type    
'System.Net.Http.HttpClient' could be found (are you missing a using directive or an 
assembly reference?)
提问于
用户回答回答于

是的,你需要添加一个参考

System.Net.Http.Formatting.dll

这可以在扩展程序集区域中找到。

请注意,实现此目的的一个好方法是将NuGet包添加System.Net.Http.Formatting.Extension到你的项目中。

用户回答回答于

缺少的参考是System.Net.Http.Formatting.dll。但更好的解决方案是添加NuGet包,Microsoft.AspNet.WebApi.Client以确保格式化DLL的版本与System.Net.Http我的项目中的.NET框架版本一起工作。

扫码关注云+社区

领取腾讯云代金券