我正在尝试创建webhook以将JSON编码数据发送到用户webhook接收器。
这是我发送数据的方式:
$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);
如何访问数据?
答案 0 :(得分:0)
有关如何编码CURLOPT_POSTFIELDS的信息,请参阅this question。
您需要执行以下操作:
$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'];
答案 1 :(得分:0)
要在php中读取原始POST数据,您可以执行以下操作:
$data = file_get_contents('php://input');
也可以将关联数组直接传递给curl_setopt($curl, CURLOPT_POSTFIELDS, $content);
- 如果这样做,PHP将能够自动将其转换回接收端$_POST
中的数组。