我正在尝试创建一个网钩来将JSON编码的数据发送给用户web钩子接收器。
我就是这样发送数据的:
$url = 'https://www.example.com/user-webhook-receiver.php';
$data = array('title' => 'Hello',
'message' => 'World',
'url' => 'http://example.com/#check');
$content = json_encode($data);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER,
array("Content-type: application/json"));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $content);
$json_response = curl_exec($curl);
用户如何访问我发送给他的数据?我试过了,但里面没有内容:
$data = json_decode($_POST);
如何访问数据?
发布于 2014-01-10 18:55:54
有关如何对这个问题进行编码,请参见CURLOPT_POSTFIELDS。
你需要做的事情是:
$postdata = "content=" . urlencode($content);
在发送方。
然后在接收方:
$content = $_POST['content'];
$content = urldecode($content);
$json_content = json_decode($content);
虽然,我同意上面的评论,你应该只发送数组。JSON编码它有什么意义--你正在发布这些数据?
编辑:只需发送要执行的数组:
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
(但有关如何使用URL编码的更多细节,请参见我链接的问题)
在接收方,你可以:
$title = $_POST['title'];
$message = $_POST['message'];
发布于 2014-01-10 19:01:00
要在php中读取原始POST数据,可以执行以下操作:
$data = file_get_contents('php://input');
还可以直接将关联数组传递给curl_setopt($curl, CURLOPT_POSTFIELDS, $content);
--如果这样做,PHP将能够在接收端自动将其转换回$_POST
中的数组。
https://stackoverflow.com/questions/21052090
复制相似问题