首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在中发送多个名称/密钥相同的值

在中发送多个名称/密钥相同的值
EN

Stack Overflow用户
提问于 2018-07-04 02:00:26
回答 1查看 2.6K关注 0票数 3

最近,当我试图传递多个数据时,我遇到了一个问题

问题是:

API使用POST发送参数,其中一个参数设计为能够接受具有相同名称/键的多个值。在GET中,它可以表示如下: /api?name=James&name=Peter&name=Richard&…在本例中,我们为“name”(James、Peter和Richard)发送了3个值,这是完全有效的,因为API期望它并将按它应该处理的值进行处理。现在的问题在于邮政。在POST中,POST参数发送如下:

代码语言:javascript
复制
 $data = array("name" => "James", "email" => "james@someone.com");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

现在我们都知道在一个数组中,我们只设置了一次键。因此,在这种情况下,无法为“name”发送3种不同的值。那么,我们应该如何通过POST发送?name=James&name=Peter&name=Richard,但这次不是通过PHP发送,而是以HTTP格式发送?

那么,如何在HTTP中发送多个数据,如下所示

代码语言:javascript
复制
 {
  "funcrr":"create_insert_new_delivery",
  "data":{
     "name":"James",
     "email":"james@someone.com",

//MORE OF LIKE AN ARRAY BUT IN HTTP FORM
       "product_name":"Pear",
       "product_weight":"30",
         "product_name":"Rice",
         "product_weight":"60",
          "product_name":"Yoghury",
           "product_weight":"100",
   }
}
EN

Stack Overflow用户

回答已采纳

发布于 2018-07-04 02:23:20

这是我唯一能想到的用重复命名密钥构建请求的方法.

代码语言:javascript
复制
// Data Source
$data = array(
  array('name'=>'james','email'=>'james@someone.com'),
  array('name'=>'john','email'=>'john@someone.com'),
  array('name'=>'joe','email'=>'joe@someone.com'),
);

// Request String Building
$postFields = implode( '&', array_map( 'http_build_query', $data ) );

// curl assignment
curl_setopt( $ch, CURLOPT_POSTFIELDS, $postFields );

这会产生..。

name=james&email=james%40someone.com&name=john&email=john%40someone.com&name=joe&email=joe%40someone.com

http_build_query()应用于每一行数据,然后通过implode()&结合在一起。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51164837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档