尝试使用PHP Storm从Clickatel捕获HTTP POST以解码消息

问题描述 投票:0回答:1

我需要知道当远程服务向我的服务器发送请求时,如何让PHP Storm捕获HTTP POST请求。背景:

我正在使用名为Clickatel的短信服务。当客户响应短信时,Clickatel会向我写的名为sms_response.php的脚本发送响应。我遇到的问题是我不知道他们发送的内容。我想使用PHP调试捕获POST请求。理想情况下,我可以看到整个消息。我知道我编写的脚本被调用,因为它将硬编码消息记录到日志文件中。我无法阅读内容,因为我不知道发送的变量。

也许一个更简单的问题是:当我不知道变量的名称时,如何解析HTTP POST的所有内容。 $ _POST和$ _GET变量似乎是空的。我也尝试使用foreach循环打印$ _SERVER变量的值,但这似乎也是空的。

有任何想法吗?我脑子里浮现的是什么?

http debugging post clickatell
1个回答
0
投票

好。我找到了答案。花了一点点但我意识到我看了一些东西。

1)我的原始代码使用的是PHP 5.6。我使用$ HTTP_RAW_POST_DATA捕获代码,但是当PHP 7.0出现时,它已被折旧。

2)为了获得响应的内容,我不得不使用file_get_contents(“php:// input”);

如果这有帮助,我使用以下代码来查看响应。现在我知道了内容,我知道如何获取数据,所以我可以解析它,这可能会有所帮助。

$text = file_get_contents("php://input");
$textfile = "/var/www/html/openemr-500/sms.log";
$myfile = file_put_contents($textfile, $text.PHP_EOL , FILE_APPEND | LOCK_EX);

响应是一个我已经知道如何解析的json字符串。希望这有助于人们。

© www.soinside.com 2019 - 2024. All rights reserved.