使用RestSharp向web api发布多个参数

时间:2012-08-30 00:43:43

标签: asp.net-mvc http asp.net-web-api restsharp

我刚刚开始使用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参数为null。我格式化这个吗?这是甚至可以做到的吗?

当我从WebApi操作方法中删除employeeType参数并将请求修改为:

        postrequest.AddBody(employee);

一切正常。

任何想法?感谢

1 个答案:

答案 0 :(得分:1)

如果您期望来自uri的雇员类型,并且如果它不是已定义路线的一部分,您可以将其作为查询字符串参数发送...例如:

API /雇员/在CreateEmployee?的 employeeType =