我開發並部署了一個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