我开发并部署了一个web api。它适用于单元测试并使用fiddler。但是,如果我创建单独的项目并尝试向其发布数据,则会发回400错误请求错误。我正在寻找一种方法来发布这个自定义对象使用C#编写的客户端。与WCF不同,没有matadata可以创建这些对象的代理,然后实例化并将其传递给调用方法。你如何将客户这样的自定义对象作为参数传递给方法?如何使用C将POST自定义对象POST到web api#
URL会http://host/directory/api/customer/AddNewCustomer 和方法的定义是类似
[HttpPost]
public bool AddNewCustomer(Customer customerObj)
编辑
以下是我的客户端代码
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://host/directory/");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.Timeout = TimeSpan.FromSeconds(30.0);
// strong typed instance
var values = new JObject();
values.Add("FirstName", "John");
values.Add("LastName", "Doe");
HttpContent content = new StringContent(values.ToString(), Encoding.UTF8,"application/json");
var response = client.PostAsJsonAsync("api/customer/AddNewCustomer", content).Result;
您确定您发送的是发布的请求,而不是其他类型吗? – KnightFox
你试过这个吗? http://stackoverflow.com/questions/4088625/net-simplest-way-to-send-post-with-data-and-read-response –
请检查与提琴手,你实际上发送你的JSON'内容类型:application/json'和header-Length:{lengthOfYourContent}'。它们是WebApi成功处理它们的必要条件 – Martin