这个问题解决了使用 PHP 的 cURL 库发布 JSON 数据的问题。用户提供旨在将 POST 数据发送到特定 URL 的代码片段。但是,代码无法检索接收页面上发布的数据,导致数组为空。
问题在于 JSON 数据的发布方式不正确。此外,代码使用 print_r($_POST) 来检索发布的数据,这不是推荐的方法。
要使用 cURL 正确发布 JSON 数据,必须确保数据已正确进行 JSON 编码。在给定的代码片段中,只有“customer”POST 字段的值是 JSON 编码的。相反,整个 POST 数据应该是 JSON 编码的。
此外,要检索接收页面上发布的数据,您可以使用 file_get_contents("php://input") 函数,该函数将包含发布了 JSON 数据。
这里是如何使用 PHP 正确发布 JSON 数据的示例cURL:
<?php $url = 'url_to_post'; $data = [ "first_name" => "First name", "last_name" => "last name", "email" => "email@example.com", "addresses" => [ "address1" => "some address", "city" => "city", "country" => "CA", "first_name" => "Mother", "last_name" => "Lastnameson", "phone" => "555-1212", "province" => "ON", "zip" => "123 ABC", ], ]; $data_string = json_encode($data); $ch = curl_init($url); # Setup request to send json via POST. curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_HTTPHEADER, ['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 规范使用 JSON 实现 REST 的意图。值得一提的是,强烈建议使用专门为与 Shopify API 交互而设计的第三方库,因为它可以简化流程并减少潜在错误。
以上是如何使用 PHP cURL 正确 POST JSON 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!