尝试使用 PHP cURL 发布 JSON 数据时,您可能会遇到结果数组仍为空的问题。本文解决了此问题并提供了解决方案。
JSON 发布不正确
在您提供的代码中,JSON 数据的发布格式不正确。您应该将整个数据数组编码为 JSON 并将其作为有效负载发布,而不是使用curl_setopt($ch, CURLOPT_POSTFIELDS, array("customer" => $data_string)):curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array( “客户”=> $data))).
意外结果
即使使用正确的 JSON 格式,使用 print_r ($_POST) 检索发布的数据也是无效的。要访问传入的 JSON 数据,请在接收页面上使用 file_get_contents("php://input")。
改进的代码片段
以下代码片段演示了正确做法:
$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";
第三方库
考虑利用第三方库与 Shopify API 进行交互。这可以简化流程并提供额外的功能。
以上是为什么我的 PHP cURL POST 请求返回空 JSON 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!