首页 >后端开发 >php教程 >为什么我的 PHP cURL POST 请求在发送 JSON 数据时返回空数组?

为什么我的 PHP cURL POST 请求在发送 JSON 数据时返回空数组?

DDD
DDD原创
2024-12-15 14:09:33437浏览

Why is my PHP cURL POST request returning an empty array when sending JSON data?

如何使用 PHP cURL 发布 JSON 数据,以可读格式返回

即使在您的服务器上,您的代码也未正确发布 JSON 数据,它返回一个空数组。要像 Shopify 的 API 中那样使用 JSON 实现 REST,我们需要解决此问题。

更正 POST 请求

要解决此问题,我们需要对整个内容进行编码以 JSON 格式发布数据,而不仅仅是“客户”字段。修改您的代码如下:

$ch = curl_init($url);
# Setup request to send JSON via POST.
$payload = json_encode(array("customer" => $data));
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
# Return response instead of printing.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
# Send request.
$result = curl_exec($ch);
curl_close($ch);
# Print response.
echo "<pre class="brush:php;toolbar:false">$result
";

访问 POST 数据

在另一页上,我们无法使用 $_POST 来检索 POST 数据,因为服务器 -侧面解析。相反,请使用 file_get_contents("php://input"),其中包含 POSTed JSON。要以可读格式查看数据:

echo '<pre class="brush:php;toolbar:false">'.print_r(json_decode(file_get_contents("php://input")),1).'
';

其他注意事项

  • 考虑使用第三方库与 Shopify API 交互,而不是使用直接与它交互。
  • 确保服务器配置为接收具有正确 Content-Type 的 JSON 请求标题。

以上是为什么我的 PHP cURL POST 请求在发送 JSON 数据时返回空数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn