HttpClient不支持PostAsJsonAsync方法C#

我试图从我的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的版本与我的项目中的.NET Framework版本的System.Net.Http一起工作。


PostAsJsonAsync不再在System.Net.Http.dll (.NET 4.5.2)中。 您可以添加对System.Net.Http.Formatting.dll的引用,但这实际上属于旧版本。 我在TeamCity构建服务器上遇到了这个问题,但这两者不会合作。

或者,您可以使用PostAsync调用替换PostAsJsonAsync ,该调用只是新dll的一部分。 更换

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

附:

var response = client.PostAsync("api/AgentCollection", new StringContent(
   new JavaScriptSerializer().Serialize(user), Encoding.UTF8, "application/json")).Result;

请参阅https://code.msdn.microsoft.com/windowsapps/How-to-use-HttpClient-to-b9289836

链接地址: http://www.djcxy.com/p/45869.html

上一篇: HttpClient not supporting PostAsJsonAsync method C#

下一篇: Make POST() With JSON