HttpClient POST多个对象/变量

时间:2015-03-06 11:26:52

标签: c# variables post httpclient

我使用HttpClient将.NET项目与我的Web API连接。

事情是,在发送多个变量或对象时,我无法使其工作。 有一个参数,我喜欢这样:

        using (var client = new HttpClient())
        {
            client.BaseAddress = new Uri("http://localhost/");
            client.DefaultRequestHeaders.Accept.Clear();

            int systemId = 24;

            var response = client.PostAsJsonAsync("api/method/{id}", systemId).Result;
            if (response.IsSuccessStatusCode)
            {
                // Do
            }
            else
                // DO
        }

有几个变量,我无法工作。我不知道如何发送几个变量。它可以是一个Object和Byte []或两个整数和类似的。 Uri就像:" Api / Method / {SystemId} / {Id}。

也许[FromBody]属性可以帮助我解决这个问题?我如何让它发挥作用?

提前致谢。

1 个答案:

答案 0 :(得分:1)

假设您有以下路线:

routes.MapRoute(
                name: "MyAPIRoute",
                url: "Api/Method/{SystemId}/{Id}"

            );

您可以调用它,使用查询字符串绑定SystemId和Id参数:

using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri("http://localhost/");
        client.DefaultRequestHeaders.Accept.Clear();

        int systemId = 24;
        int id = 45;
        string queryString = "SystemId="+systemId+"&Id="+id;

        var response = client.PostAsJsonAsync("api/method/",queryString).Result;
        if (response.IsSuccessStatusCode)
        {
            // Do
        }
        else
            // DO
    }