1
我剛開始使用RestSharp和WebApi進行遊戲時遇到了一些問題。使用RestSharp將多個參數發佈到webapi
我不知道這是否是最好的做法,甚至有可能,但我會通過代碼演示了(這不是我的確切的代碼,但它是完全一樣的概念)
[HttpPost]
public HttpResponseMessage CreateEmployee(Employee emp, int employeeType)
{
// CREATE EMPLOYEE
return Request.CreateResponse(HttpStatusCode.Created, emp.id);
}
我已經創建了一個控制檯應用程序來使用RestSharp測試這個。以下是我的:
var client = new RestClient();
client.BaseUrl = @"http://localhost:15507";
var employee = new Employee();
//populate employee model
postrequest.Method = Method.POST;
postrequest.Resource = "api/Employee/CreateEmployee";
postrequest.AddHeader("Accept", "application/json");
postrequest.AddHeader("Content-Type", "application/json");
postrequest.RequestFormat = DataFormat.Json;
postrequest.AddBody(new { emp = employee, listId = 2 });
var res = client.Execute(postrequest);
我得到的錯誤是employeeType參數爲空。我的格式正確嗎?這是甚至可以做到的嗎?
當我刪除從的WebAPI操作方法的employeeType參數和修改請求:
postrequest.AddBody(employee);
一切工作正常。
什麼想法?由於
謝謝,我會試試看。但是有可能將它傳遞給主體而不是作爲JSON字符串的一部分,而不是將它放在URL中? – Shaz
你不能從身體讀取多個參數。只有一個是允許的。 –
謝謝基蘭。對於那些尋找更多信息的人來說,這裏有一篇相當不錯的關於參數綁定的文章:http://blogs.msdn.com/b/jmstall/archive/2012/04/16/how-webapi-does-parameter-binding.aspx – Shaz