获取CURL RAW在PHP中发布JSON数据

我通过cURL从服务器发送原始数据,其中数据类型为JSON,如</ p>
\ n

  curl -X POST https://website-to-post-data.com/listener.php -H'content-type:application / json'-d'{“user_id”:“1234”  ,“日期”:“2017-04-06”,“first_name”:“名字”,“last_name”:“姓氏”,“电子邮件”:“someemail@email.com”}'
</ code> </ pre>

现在我想读取发布到我的listener.php文件的数据,并将JSON数据解码为PHP数组,最后将其插入我们的MySQL数据库。</ p>

以下是 https://网站到后期数据的代码。 com / listener.php 文件</ p>

 &lt;?php 
$ json_string = file_get_contents('php:// input');
$ ch = curl_init ('https://website-to-post-data.com/listener.php');
$ options = array(
CURLOPT_RETURNTRANSFER =&gt; true,
CURLOPT_HTTPHEADER =&gt; array(
'接受:application / application / json; charset = utf-8',
'内容 - 键入:application / json; charset = utf-8',
'期望:100-continue',
'连接:Keep-Alive'),
CURLOPT_POSTFIELDS =&gt; $ json_string
);
curl_setopt_array($ ch,$ options);
$ result = curl_exec($ ch); //获取jSON结果字符串
echo $ result;
$ jsArray = json_decode($ result);
?&gt;
</ code> </ pre>

为什么我输出空白 执行上述代码而不接收数据?</ p>
</ div>

展开原文

原文

I am getting raw data sent from server through cURL where data type is JSON, like

curl -X POST https://website-to-post-data.com/listener.php -H 'content-type: application/json' -d '{"user_id": "1234", "Date": "2017-04-06", "first_name": "First Name", "last_name": "Last Name", "email": "someemail@email.com"}'

Now I want to read this data posted to my listener.php file and decode the JSON data to PHP array and finally insert it in our MySQL database.

Here is the code of https://website-to-post-data.com/listener.php file

<?php
$json_string = file_get_contents('php://input');
$ch = curl_init( 'https://website-to-post-data.com/listener.php' );
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
  'Accept: application/json;charset=utf-8',
  'Content-Type: application/json;charset=utf-8',
  'Expect: 100-continue',
  'Connection: Keep-Alive') ,
CURLOPT_POSTFIELDS => $json_string
);
curl_setopt_array( $ch, $options );
$result =  curl_exec($ch); // Getting jSON result string
echo $result;
$jsArray = json_decode($result);
?>

Why I am getting blank output on executing the above code and not receiving the data?

dongzaheng4449
dongzaheng4449 抱歉,我已经更新了$json_string
3 年多之前 回复
dousong8187
dousong8187 如果这是您的整个脚本,则永远不会设置$json_string。可能想暂时评论一下这条线。您还需要var_dump$result变量而不是回显它。如果出现Curl错误,$result将被设置为false,如果您回显该变量,则该结果将不明显。
3 年多之前 回复
douguai4653
douguai4653 对不起,但你的建议没有任何区别
3 年多之前 回复
ds42774
ds42774 尝试在$options上添加CURLOPT_SSL_VERIFYHOST和CURLOPT_SSL_VERIFYPEER
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐