如何验证我是否通过PHP中的cURL进行了正确的POST?

时间:2015-11-12 13:42:04

标签: php json bash curl

我有一个示例json对象包含这些数据。我试图将这些数据存储在变量中,然后通过 curl POST

$json = '{
    "mac": "1234567890",
    "dns": "8.8.8.8,4.2.2.1",
    "acl_mode": 1
}';

$url = 'http://my-site.com/api';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array('json' => $json)));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);

dd($result);

我的结果是500

{
    "status": 500,
    "error_code": 1005
}
  • 我设置卷发的方式是错误的吗?

1 个答案:

答案 0 :(得分:1)

在终端中使用curl进行测试后,我们发现端点在没有密钥的情况下消耗了整个POST有效负载。

这用于测试

curl -X POST -d '{"mac": "1234567890","dns": "8.8.8.8,4.2.2.1","acl_mode": 1}'  http://mysite/api

因此,在没有$jsonjson_encode封装的情况下,按原样发送array有效负载。

curl_setopt($ch, CURLOPT_POSTFIELDS, $json);

工作得很好。