如何使用 POSTMAN 发布字符串数组?

Posted

技术标签:

【中文标题】如何使用 POSTMAN 发布字符串数组?【英文标题】:How to post string array using POSTMAN? 【发布时间】:2017-02-01 16:46:47 【问题描述】:

我正在使用 Postman 将字符串数组发送到 Web API。 Web API 方法如下所示:

[HttpPost]
public async Task<IEnumerable<DocumentDTO>> GetDocuments([FromBody]IEnumerable<string> documentNames)

    return await _service.GetDocuments(documentNames);

我在SO post 看到了如何使用 Postman 发送数组。这是我发送数组的方式:

Fiddler 显示请求的内容类型是multipart/form-data;

但我收到错误响应:

"Message": "请求实体的媒体类型 'multipart/form-data' 此资源不支持。", "ExceptionMessage": "否 MediaTypeFormatter 可用于读取类型的对象 'IEnumerable1' from content with media type 'multipart/form-data'.", "ExceptionType": "System.Net.Http.UnsupportedMediaTypeException", "StackTrace": " at System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent content, Type type, IEnumerable1 格式化程序,IFormatterLogger formatterLogger, CancellationToken cancelToken)\r\n at System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage 请求,类型类型,IEnumerable`1 格式化程序,IFormatterLogger formatterLogger, CancellationToken cancelToken)"

我尝试将密钥设置为documentNames,documentNames[],documentNames[0]

我尝试将正文选择为x-www-form-urlencoded。当我这样做时,API 会收到一个空集合。

我已尝试将正文选择为raw。当我这样做时,API 接收 null 作为参数。

问题

    如何使用表单数据发送字符串数组? 如何使用x-www-form-urlencoded 发送字符串数组? 如何将字符串数组作为原始 JSON 发送?

【问题讨论】:

【参考方案1】:

将其作为 JSON 数组传递并选择raw 选项,如下所示

对于 API 方法签名

    public void Post([FromBody] IEnumerable<string> value)
    
      //some processing
    

【讨论】:

谢谢,我对复杂对象列表使用了相同的想法,对我来说效果很好 太简单了,我折腾了这么久。令我惊讶的是,请求处理程序无法识别将其作为 value:[1,2,3] 传递。【参考方案2】:

如果你想通过参数初始化一个数组,你可以这样做。

使用具有相同名称的variable

【讨论】:

【参考方案3】:

在表单中使用相同的键记得添加 [] 就可以了

【讨论】:

adding[] 有效,特别是当我们 json_encode 将其保存为数据库中的字符串时。如果你这样做 categories[0] / categories[1] 它将创建键值对并且到达服务器的值不会在单个数组中

以上是关于如何使用 POSTMAN 发布字符串数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何用postman将一维int数组

如何使用 Postman 将 JSON 对象作为 JSON 字符串发送?

postman怎么发送加密请求

get请求如何在url中加入数组参数

如何确定打字稿、数字数组或字符串数​​组中的变量类型?

如何逐步计算字符串数组中的字符数? -Java