【发布时间】:2020-07-01 14:46:42
【问题描述】:
我正在尝试使用 PHP 从第三方 API 系统接收到我的 URL 端点的数据响应。所以第三部分是向我的端点(我在他们的 API 面板中填写的 url)发送一个发布请求,只要他们有新的数据响应给我。基本上,当他们从他们的系统收到新的提交时,他们只会发送最后的响应数据。我已经在我的端点 URL 上添加了这个,看看我是否可以看到收到的数据响应:
$request_data = file_get_contents('php://input');
var_dump($request_data);
在他们的面板上,我可以测试端点 url 结果,在他们的面板上,当我点击 test request 按钮时,我得到了这个结果,这基本上是我的var_dump 的结果:
但在我这边,输出就像一个完整的字符串,但在我的端点 URL 上我没有得到任何东西。
这是我的 phpinfo 文件中的post_max_size,所以我的 $_POST 变量不应该为空:
我应该期望接收到我的 URL 端点的提交数据的格式如下:
{
"data": {
"id": "",
"name": "",
"email": "",
"phone": "",
"description": "",
"street": "",
"housenumber": "",
"postcode": "",
"city": "",
"questions": {
"Type opdracht": "",
"Wat wil je laten opstellen?": ""
},
"questions_unmapped": {
"114": "",
"187": ""
},
"date": "",
"notes": ""
}
}
有什么办法:
- 将此字符串转换为 PHP 对象
- 在我这边打印/存储这些数据(我的端点 URL)
【问题讨论】:
-
您检查过 $_POST 变量是否包含任何数据吗?
-
array(0) { } 两边都有 $_POST。
-
好的,然后我会 1) 检查 $_REQUEST 变量,看看他们是否使用另一种 HTTP 方法发送请求 2) 检查 PHP 错误日志,看看是否有任何错误可能表明另一个问题
-
仍然使用 $_REQUEST 获取 array(0) { }。
-
@thephper post_max_size=8M 所以它不是空的。