首页 > 后端开发 > php教程 > 如何使用 PHP cURL 正确 POST JSON 数据?

如何使用 PHP cURL 正确 POST JSON 数据?

Barbara Streisand
发布: 2024-12-23 12:52:16
原创
517 人浏览过

How to Correctly POST JSON Data Using PHP cURL?

如何使用 PHP cURL 发布 JSON 数据?

这个问题解决了使用 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板