【问题标题】:Post Nested parameters using Curl in PHP在 PHP 中使用 Curl 发布嵌套参数
【发布时间】:2019-06-16 19:32:42
【问题描述】:

这是我需要发送的请求正文-(PHP 中的 Curl POST 请求)

$data = {
    "paramOne" : "f733787d-5649",
    "paramTwo": {
        "format": "123XD"
    },
    "paramThree": [
      {"type":"cn", "value":"Test User Manish 1"},
      {"type":"c", "value":"US"}
    ]
};

我正在尝试在 PHP 中的 Curl Request 的这一行中使用它-

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

嵌套的参数弄乱了我尝试发送的格式。

我已经尝试过使用 http_build_query,但是 paramThree 引起了问题。 我正在寻找在使用 http_build_query 之前需要对 $data 的格式进行的更改。

【问题讨论】:

    标签: php curl postman


    【解决方案1】:

    它是 JSON。您可以将其作为字符串(用引号括起来)发布,也可以先创建一个数组,将其转换为 JSON,然后再发布。像这样:

    $array = [
        'paramOne' => 'f733787d-5649',
        'paramTwo' => [
            'format' => '123XD'
            ],
        'paramThree' => [[
            'type' => 'cn',
            'value' => 'Test User Manish 1'
            ],
            [
            'type' => 'c',
            'value' => 'US'
                ]]
        ];
    
    $data = json_encode($array);
    

    在这两种情况下都使用

    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
    

    【讨论】:

    • 感谢 10 月 10 日!我想我试着一起做所有的事情。应该将请求正文保留为数组格式,我什至不需要首先使用 http_build_query。
    猜你喜欢
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多