Api的查询字符串中的数组

问题描述

使用WebClient通过查询字符串将数组发送到ApiController时出现错误400。

api方法看起来像

public IHttpActionResult List([FromUri] Model model)

在Model类中,我有

public int[] Ids { get; set; }

在客户端,代码如下:

webClient.QueryString.Add("ids","1");
webClient.QueryString.Add("ids","2");
...
await webClient.DownloadStringTaskAsync(url);

如果我仅发送一个“ ids”参数,则代码可以正常运行,但不能同时使用两个或多个。

我发现客户端创建的网址类似于“ url?ids = 1,2”而不是“ url?ids = 1&ids = 2”。

我错过了一些配置吗?

解决方法

WebClient会自动将具有相同键的多个值转换为逗号分隔的字符串。您可以更改此行为,请参见:How to build WebClient querystring with duplicate keys?

我建议尽管使用HttpClient而不是WebClient

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...