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