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

时间:2018-03-05 03:12:14

标签: http debugging post clickatell

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

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

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

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

1 个答案:

答案 0 :(得分: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字符串。希望这有助于人们。