在PHP中使用Curl发布嵌套参数

时间:2019-06-16 11:14:24

标签: php curl postman

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

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

我正在PHP的Curl请求的这一行尝试使用它-

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

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

我已经尝试使用 http_build_query ,但是paramThree导致了问题。 我正在寻找在对$ data格式进行更改之前要对它使用http_build_query的方法。

1 个答案:

答案 0 :(得分: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'));