我想发送带有许多同名参数的POST请求:
FormUrlEncodedContent content = new FormUrlEncodedContent(new [] {
new KeyValuePair < string, string > ("group_id", "344"),
new KeyValuePair < string, string > ("group_id", "20"),
new KeyValuePair < string, string > ("group_id", "456")
});
HttpResponseMessage response = await _httpClient.PostAsync("http://localhost/api", content);
但如果我使用上述请求,我只会收到第一个group_id的响应(具有344 ID)。您是否知道如何使用 FormUrlEncodedContent 获取“group_id [] = 344&amp; group_id [] = 20&amp; group_id [] = 456”?
答案 0 :(得分:2)
老问题,但花了我一些时间才弄明白,所以这就是答案:
您应该在键中使用括号,如下所示:
FormUrlEncodedContent content = new FormUrlEncodedContent(new [] {
new KeyValuePair < string, string > ("group_id[]", "344"),
new KeyValuePair < string, string > ("group_id[]", "20"),
new KeyValuePair < string, string > ("group_id[]", "456")
});
答案 1 :(得分:0)
您正在使用具有相同键的多个键值对。
这通常是不允许的。
这些键值对将被忽略:
new KeyValuePair<string, string>("group_id", "20"),
new KeyValuePair<string, string>("group_id", "456")
期望这种输入的API必须改变其设计。