【发布时间】:2018-05-10 11:29:16
【问题描述】:
我正在尝试在 php 中实现以下 cURL 请求:
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: login:password" \
-d '{"phone": "+48667421797", "msg": "Great app! Thank you!"}' \
https://some.endpoint.url
它在控制台中运行良好,我还设法在邮递员/失眠等工具中使用此请求。
但是当我尝试像这样在PHP 中实现它时:
$fields = [
'phone' => $number,
'msg' => $msg,
];
$data = json_encode($fields);
$headers = [
'Content-Type: application/json',
'Authorization: login:password'
];
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $data);
curl_setopt($ch,CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, config('kajaki.sms_url'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$response = curl_exec($ch);
curl_close($ch);
我收到400: Incorrect schema,AFAIK 表示该请求没有作为有效的 JSON 请求发送。
怎么了?如何以 JSON 格式正确发送此请求?
很遗憾,此 API 不提供任何文档。
【问题讨论】:
-
尝试打印$data并检查它是否是有效的json
-
正确。我试过了