HttpClient POST 多个 objects/variables

HttpClient POST multiple objects/variables

我正在使用 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] 属性可以帮助我解决这个问题?我该如何让它发挥作用?

提前致谢。

假设您有以下路线:

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
    }