如何将curl脚本转换为php?

时间:2019-05-15 22:22:08

标签: php curl

我正在尝试从curl脚本编写php代码,但我认为我遇到了一些问题

curl -X POST \
  https://api.mailjet.com/v4/sms-send \
  -H "Authorization: Bearer $MJ_TOKEN" \
  -H 'content-type: application/json' \
  -d '{
  "From": "InfoSMS",
  "To": "+33600000000",
  "Text": "Hello World!"
}'

我的代码

$token = 'XXXXXXXXXXXXXX';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.mailjet.com/v4/sms-send');
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
    'From' => 'InfoSMS',
    'To' => '+33600000000',
    'Text' => 'Hello World!'
));
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = "Authorization: Bearer " . $token;
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_error($ch)) {
echo 'Error:' . curl_error($ch);
}
var_dump($result);
curl_close ($ch);

这是我第一次使用curl,所以我真的不知道从哪里开始

谢谢您的帮助

1 个答案:

答案 0 :(得分:0)

您需要将参数数组转换为JSON。如果您给CURLOPT_POSTFIELDS提供一个数组,则它以URL编码格式而不是JSON格式发送。

curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array(
    'From' => 'InfoSMS',
    'To' => '+33600000000',
    'Text' => 'Hello World!'
)));