【问题标题】:Is it possible to send an array with the Postman Chrome extension?是否可以使用 Postman Chrome 扩展发送数组?
【发布时间】:2012-09-27 05:25:17
【问题描述】:

我一直在使用 Postman Chrome 扩展来测试我的 API,并希望通过 post 发送一组 ID。有没有办法在 Postman 中将这个列表作为参数发送?

{
  user_ids: ["1234", "5678"]
}

【问题讨论】:

  • 我相当确定发送数组的正确方法是“以某种方式,您将其发送到的 特定 服务器将正确接收它”。这解释了下面答案的变化 - 但如果每个人(或任何人?)都说他们使用的是什么后端,这一切都会更有用。

标签: google-chrome rest post


【解决方案1】:

选择 form-data 或 urlencoded 并使用相同的键“user_ids”。服务器应该以数组的形式接收它。

【讨论】:

  • 看起来,由于 Chrome 中的一个错误,即使您在 Postman 中选择 JSON,也会错误地发送 XML 标头,您必须添加一个值为 application/jsonContent-type 标头。
  • 以防万一有人回来寻找答案,数组的键应该是 user_ids[] 而不仅仅是 user_ids
【解决方案2】:

你需要像这样在你的变量名后面加上[]

如果这不起作用,请尽量不要将索引放在括号中:

my_array[]  value1
my_array[]  value2

注意:

  • 如果您使用postman packaged app,您可以通过选择raw / json(而不是form-data)来发送数组。另外,请确保在Headers 选项卡中将Content-Type 设置为application/json。 这是原始数据的示例{"user_ids": ["123" "233"]},不要忘记引号!

  • 如果您使用postman REST client,您必须使用我上面描述的方法,因为将数据作为原始 (json) 传递将不起作用。 postman REST客户端有一个bug(至少我在使用0.8.4.6时得到了这个bug)。

【讨论】:

  • 万一有人问如何添加哈希而不是数组,思路还是一样的,只需将索引改为哈希名称my_array[hashname] value1
  • my_array[] value 将使用提供的值创建一个数组参数,如key => [value]。 my_array[key] value 将创建一个哈希,如 {key => value}
  • 它们都不起作用,但我发现只是添加数组名称在 2019 年起作用。[prntscr.com/nqubpi]
  • 您没有索引的第二个选项,解决了我的问题,谢谢
【解决方案3】:

对我来说,array[0], array1, .. 或 array[], array[], ... 不适用于我。 它的工作原理更简单:

【讨论】:

  • 添加多个同名key,服务器只接收最后一个
  • 请告诉我如何在表单数据中只发送一个元素 userid[0]。如果我在一个关键字段中传递 userid[]/userid[0] 它作为一个字符串!
  • 在 asp.net core 2.2 中,它通过这个解决方案接收所有数组元素
  • 在 Django 中,我能够使用以下方法获取所有文件:request.FILES.getlist('usersId')
【解决方案4】:

我也遇到了这个问题,通过以下方法解决了:

1 - 转到请求标头配置并添加以下内容:

Accept : application/json, text/plain, */*
Content-Type : application/json;charset=UTF-8

2 - 为了发送 json 数组,我使用原始 json 格式并将 user_ids 设置为数组:

user_ids: ["bbbbbbbbbb","aaaaaaaaaa","987654321","123456789"]

【讨论】:

  • 这对我有用,但是不需要设置 Accept 标头
  • 这就是我需要的答案。
  • 我的 API 方法需要 List 并且完成了这项工作。
【解决方案5】:

这是我的解决方案:

使用表单数据并编辑如下:

Key       Value 
box[]      a
box[n1]    b
box[n2][]  c
box[n2][]  d

你会得到一个这样的数组:

{"box":{"0":"a","n1":"b","n2":["c","d"]}}

【讨论】:

  • 太棒了!最后我可以发送一个对象 "loc": { "type": "Point", "coordinates": [ 126.972967, 37.54171 ], } 输入 loc[type]: Point, loc[coordinates][] :126.. ., loc[coordinates][]: 37... on Postman thx!!
  • 这非常有用,因为当您需要发送文件时,Postman 的“原始”格式将不起作用。您需要使用表单数据格式。
【解决方案6】:

正如@pinouchon 提到的,您可以在数组索引的帮助下传递它

my_array[0] value
my_array[1] value

In addition to this, to pass list of hashes, you can follow something like:

my_array[0][key1] value1

my_array[0][key2] value2

示例:

To pass param1=[{name:test_name, value:test_value}, {...}]

param1[0][name] test_name

param1[0][value] test_value

【讨论】:

    【解决方案7】:

    我在这里和其他帖子中尝试了所有解决方案,但没有任何帮助。

    唯一的答案帮助了我:
    在函数签名中的参数声明之前添加 [FromBody] 属性:

    [Route("MyFunc")]        
    public string MyFunc([FromBody] string[] obj)
    

    【讨论】:

      【解决方案8】:

      在标题集中

      content-type : application/x-www-form-urlencoded
      

      在正文中选择选项

      x-www-form-urlencoded

      并以 json 数组的形式插入数据

      user_ids : ["1234", "5678"]
      

      【讨论】:

      • 只有一个对我有用的表单数据!由于我也在发送图像,因此无法使用 raw
      • 唯一一个也对我有用 对于完整的新手:按 x-www-form-urlencoded => 批量编辑 => UserNames:["UserName1","UserName2", "UserName3"]
      【解决方案9】:

      这对我有用。传递 Item 对象数组 {ItemID,ColorID,SizeID,Quntity}

      【讨论】:

        【解决方案10】:

        这也适用于对象内的列表:

        Id:37
        IdParent:26
        Name:Poplet
        Values[0].Id:1349
        Values[0].Name:SomeName
        Values[1].Id:1350
        Values[1].Name:AnotherName
        

        等效的 JSON 将是:

        {
            "Id": 37,
            "IdParent": 26,
            "Name": "Poplet",
            "Values": [
                {
                    "Id": 1349,
                    "Name": "SomeName"
                },
                {
                    "Id": 1350,
                    "Name": "AnotherName"
                }
            ]
        }
        

        【讨论】:

        • 不幸的是,Values[0].Id 对我不起作用,当我检查邮递员正文请求时,它显示“Values[0].Id”=“1349”你知道为什么?
        【解决方案11】:

        将 Body 设置为 raw 并形成如下数组:

        【讨论】:

        • { "question" : "什么是印度的首都", "marks" : 1, "options" : [ "Mumbai", "Pune", "New Delhi", "Jaipur" ], “正确”:“新德里”}
        【解决方案12】:

        在表单数据中,

           key              value
        
         user_ids[]         1234
         user_ids[]         5678
        

        【讨论】:

          【解决方案13】:
          {
              "data" : [  
                  {
                      "key1" : "value1",
                      "key2" : "value2"   
                  },
                  {
                      "key01" : "value01",
                      "key02" : "value02"             
                  },
                  {
                      "key10" : "value10",
                      "key20" : "value20"   
                  }
              ]
          }
          

          你可以这样通过。

          【讨论】:

            【解决方案14】:

            重要的是要知道,VALUE 框只允许包含数字值(没有说明符)。

            如果你想发送例如一个带有 Postman 的“消息”数组,每个都有一个键/值对列表,输入例如messages[][reason] 放入 KEY 框,reason 值放入 VALUE 框:

            服务器将收到:

            {"messages"=>[{"reason"=>"scrolled", "tabid"=>"2"}, {"reason"=>"reload", "tabid"=>"1"}], "endpoint"=>{}}
            

            【讨论】:

            • 这成功了……但只有当我检查了表单数据选项时。
            【解决方案15】:

            如果你想要一个字典数组,试试这个:

            【讨论】:

            • 对我来说适用于 node.js / mongoose 的是 social_links[0].name 请注意额外的 期间
            • 在您的示例中,如果 name 也是一个数组怎么办?我在 Django REST 框架(具有多对多关系的嵌套可写模型序列化器)中尝试了类似 social_links[0]name[0] 的方法,但没有成功。
            • 只要我加一个'.'在索引之后(例如 social_liks[0].name),这适用于 Postman 使用 Spring Rest 的我。
            • 不幸的是,social_link[0].name 对我不起作用,当我检查邮递员正文请求时,它显示“social_link[0].name”=“136”你知道为什么?
            • 如何在 laravel 8 中为此创建自定义请求?
            【解决方案16】:

            转到 Header 并选择 Content-Type = application/json 然后转到 body 并选择 raw 然后传递一个数组。

            【讨论】:

              【解决方案17】:

              我的后端是用 Ruby on Rails 编写的。这就是我使用 Postman 发送数组参数的方式。它对我有用。

              更新

              我正在使用 x-www-form-urlencoded。我相信它也适用于 form-data

              【讨论】:

                【解决方案18】:

                假设你有下面的对象数组,

                features: [
                      {
                        title: { type: String },
                        type: { type: String },
                      },
                    ],
                

                要在邮递员的表单数据上添加值,这样添加

                features[title]
                features[type]
                

                请查看下面的图片

                【讨论】:

                  【解决方案19】:

                  这对我有用

                  {
                   "user_ids":["[1234, 5678]"]
                  }
                  

                  我相信这取决于大部分时间后端是如何设置的。

                  【讨论】:

                    猜你喜欢
                    • 2016-08-11
                    • 2015-09-16
                    • 2012-09-16
                    • 2021-06-10
                    • 1970-01-01
                    • 2013-10-11
                    • 2016-09-02
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多