在.NET 4.5.1中向ASP.NET WebApi 2进行POST请求
在.NET 4.5.1中向ASP.NET WebApi 2进行POST请求
我如何从C#客户端将复杂类型POST到Web Api 2控制器操作?我看到很多关于此的信息,但是都是针对旧版本的框架。在.NET 4.5.1中正确的方法是什么?
目前我有以下代码:
using (var client = new HttpClient()) { client.BaseAddress = new Uri("http://localhost:60892/"); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); //client.PostAsJsonAsync()似乎不存在,或者我漏掉了什么 //client.PostAsync()找不到一种方法来发布复杂类型 if (response.IsSuccessStatusCode) { } }
问题出现的原因是缺少Microsoft ASP.NET Web API 2.1 Client NuGet包。解决方法是安装这个NuGet包。
文章内容如下:
在使用ASP.NET WebApi 2进行POST请求时,我们可以使用PostAsJsonAsync扩展方法。但是,如果正确设置HttpContent,使用PostAsync方法也可以实现相同的功能。
首先,我们需要安装Microsoft ASP.NET Web API 2.1 Client NuGet包。你可以在http://www.nuget.org/packages/Microsoft.AspNet.WebApi.Client/5.1.2上找到这个包并进行安装。
然后,我们需要正确设置HttpContent。你可以在https://stackoverflow.com/questions/18971510上找到一个例子。
总结起来,如果你遇到了POST到ASP.NET WebApi 2的问题,首先检查是否安装了Microsoft ASP.NET Web API 2.1 Client NuGet包。如果没有安装,你可以通过安装这个NuGet包来解决问题。另外,确保正确设置HttpContent以便使用PostAsync方法。