将多个 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 循环结束对整个数据数组进行编码并发送。
我想将这三个数组数据发送到外部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 循环结束对整个数据数组进行编码并发送。