将多个 json 数据发送到 api

send multiple json data into api

我想将这三个数组数据发送到外部api。为此,我首先将其编码为 JSON,但它总是发送最后一个数组。

$params = array(        array('receiverName' => 'sample_name',
    'receiverEmail' => 'krishanuniyalas@gmail.com',
    'senderEmail' => 'info@hotelpalacio.net',
    'roomNumber' => '12456',
    'accessToken' =>'ca5629d0-6810-11e8-9d40-d7194ac0ac8d'),array('receiverName' => 'sample_name',
    'receiverEmail' => 'karamuniyalas@gmail.com',
    'senderEmail' => 'info@hotelpalacio.net',
    'roomNumber' => '12456',
    'accessToken' =>'ca5629d0-6810-11e8-9d40-d7194ac0ac8d'),array('receiverName' => 'sample_name',
    'receiverEmail' => 'krishanuniyalas@gmail.com',
    'senderEmail' => 'info@hotelpalacio.net',
    'roomNumber' => '12456',
    'accessToken' =>'ca5629d0-6810-11e8-9d40-d7194ac0ac8d'));

$data_string = json_encode($params);

foreach($params as $pa) {
  $r=json_encode($pa);
}

curl_setopt($ch, CURLOPT_POSTFIELDS, $r);

您只需创建一个简单的查询参数,例如 $data = http_build_query($params) 然后将数据传递给你的 curl_setopt($ch,CURLOPT_POSTFIELDS,$data);

这是一个工作示例...

$data = [
    [
        'a' => 'bla',
    ],
    [
        'b' => 'blubb',
    ],
];

$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, "http://www.example.com/");
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);

$result = [];
foreach ($data as $value) {
    $json = json_encode($value);
    curl_setopt($handle, CURLOPT_POSTFIELDS, $json);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [                                                                         
        'Content-Type: application/json',                                                                                
        'Content-Length: ' . strlen($json),                                                                       
    ]);
    $result[] = curl_exec($handle);
}

打开有效的 curl 资源并根据您的目的设置相应的 curl 选项。您想要将 json 字符串作为 post 请求发送。此外,您应该告诉对方,您发送了 json 数据。说 curl,每次 运行 通过 foreach 循环时,您都在等待响应和触发。就这些了...

如果您想立即发送全部数据,请省略 foreach 循环结束对整个数据数组进行编码并发送。