【问题标题】:Send data with cURL by post's data通过 post 的数据使用 cURL 发送数据
【发布时间】:2022-01-18 10:48:25
【问题描述】:

您好,我可以连接我的帖子数据吗?

CURLOPT_POSTFIELDS => "{\"contact\":{\"dataFields\":[{\"key\":\"FIRSTNAME\",\"value\":\"Foo\"},{\"key\":\"LASTNAME\",\"value\":\"Bar\"}],\"email\":\"foo.bar@gmail.com\",\"optInType\":\"Single\",\"emailType\":\"PlainText\"},\"consentFields\":{\"fields\":[{\"key\":\"UK_OPT_IN_COUNT\",\"value\":\"Y\"}]}}"

我需要用$_POST['firstName']替换Foo,用$_POST['lastName']替换Bar,用$_POST['email']替换foo.bar@gmail.com

【问题讨论】:

  • 使用 json_encode() 构建您的 JSON。
  • 你能帮我一些代码吗?可能是例子。
  • 我的意思是您可以使用. 使用标准字符串连接 - 您尝试过什么吗?但真的......不要手动构建 JSON,你只会让自己容易犯愚蠢的语法错误,或者由于 POST 数据的内容而无意中引入它们(特别是如果你不逃避它)。正如您所看到的,由于所有\ s 把它弄乱了,这个字符串将很难调试。使用您需要的结构和内容构建一个对象,然后只需 json_encode() 即可获得可靠、简单的 JSON 输出。
  • 不适用于 json @ADyson,但谢谢!

标签: php curl


【解决方案1】:

发现了。我像@ADyson 建议的那样使用了 json 编码。如果有人需要,这里是代码:

$data = [
    'contact' => [
        'dataFields' => [
            [
                'key' => 'FIRSTNAME',
                'value' => $_POST['firstName']    
            ],
            [
                'key' => 'LASTNAME',
                'value' => $_POST['lastName']  
            ],
            [
                'key' => 'FULLNAME',
                'value' => $_POST['lastName']  
            ]
        ],
        'email' => $_POST['email'],
        'optInType' => 'Single',
        'emailType' => 'PlainText',
    ]
];

所以你可以这样使用:

CURLOPT_POSTFIELDS => json_encode($data)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 2014-07-23
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多