Php 将多个json数据发送到api
我想将这三个数组数据发送到外部api。首先,我将其编码为JSON,但它总是发送最后一个数组Php 将多个json数据发送到api,php,post,php-curl,Php,Post,Php Curl,我想将这三个数组数据发送到外部api。首先,我将其编码为JSON,但它总是发送最后一个数组 $params = array( array('receiverName' => 'sample_name', 'receiverEmail' => 'krishanuniyalas@gmail.com', 'senderEmail' => 'info@hotelpalacio.net', 'roomNumber' => '12456',
$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\u build\u query($params)
然后将数据传递给您的
curl\u setopt($ch,CURLOPT\u 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循环结束,对整个数据数组进行编码并发送。编码时的输出是什么?当您发出此请求时,服务器得到了什么?您确定服务器可以像您希望的那样处理此请求吗?您只能发布一次数据。为什么不发送
$data\u string
?其余的代码在哪里?curl\u setopt($ch,CURLOPT\u POSTFIELDS,$r)
all?设置获取响应的选项怎么样?发送数据并等待响应怎么样?foreach($jsondataas$data){$array[]=$data;}$z=$array;$yy=数组();foreach($z as$t){$data5=json_encode($t,true);curl_setopt($ch,CURLOPT_POSTFIELDS,$data5);curl_setopt($ch,CURLOPT_HTTPHEADER,array('Accept:application/json','Content-Type:application/json','cache-control:no-cache','accessToken casdfgsd810-11esdfg8-9d40-d7194ac0ac8d'))}$result=curl\u exec($ch);问题是$result=curl_exec($ch);。我在foreach循环之外使用它…否则一切都正常。。。JSON在哪里?它将以post请求的形式发布数据。。如果您想要发送json数据,那么只需要发送像curl_setopt($ch,CURLOPT_POSTFIELDS,$data_string)这样的数据;唯一的问题是$result[]=curl_exec($handle);。。我在foreach循环之外使用它。否则一切都很好。但是再次感谢你