首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >HttpClient不支持PostAsJsonAsync方法C#

HttpClient不支持PostAsJsonAsync方法C#
EN

Stack Overflow用户
提问于 2013-10-03 19:46:40
回答 13查看 303.6K关注 0票数 294

我正在尝试从我的web应用程序调用web API。我使用的是.Net 4.5,在编写代码时,我得到了一个错误:HttpClient不包含定义PostAsJsonAsync方法。

代码如下:

代码语言:javascript
复制
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;

我收到了错误消息:

错误:“”System.Net.Http.HttpClient“”不包含“”PostAsJsonAsync“”的定义,并且找不到接受“”System.Net.Http.HttpClient“”类型的第一个参数的扩展方法“”PostAsJsonAsync“”(是否缺少using指令或程序集引用?)

请看一看,给我提个建议。

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2013-10-03 19:59:25

是,您需要将引用添加到

代码语言:javascript
复制
System.Net.Http.Formatting.dll

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

实现此目的的一个好方法是将NuGet package Microsoft.AspNet.WebApi.Client添加到您的项目中。

票数 506
EN

Stack Overflow用户

发布于 2016-01-04 23:53:58

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

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

代码语言:javascript
复制
var response = client.PostAsJsonAsync("api/AgentCollection", user).Result;

通过以下方式:

代码语言:javascript
复制
var response = client.PostAsync("api/AgentCollection", new StringContent(
   new JavaScriptSerializer().Serialize(user), Encoding.UTF8, "application/json")).Result;

请注意,JavaScriptSerializer位于名称空间System.Web.Script.Serialization中。

您必须在csproj:System.Web.Extensions.dll中添加一个程序集引用

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

票数 218
EN

Stack Overflow用户

发布于 2014-06-14 01:33:21

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

票数 169
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19158378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档