【问题标题】:How to include 'data-urlencode' using php curl library如何使用 php curl 库包含“data-urlencode”
【发布时间】:2019-04-03 21:42:49
【问题描述】:

我正在尝试使用 Curl php 连接 twilio api。以下是来自 Twilio api 的代码

我使用了一个在线工具php来curl,但是它没有用数据编码url转换代码。

被标记为重复的问题没有关于 --data-urlencode 的信息。我已经尝试了那里提到的解决方案,但它仍然没有按照预期的方式工作。

curl -X POST https://api.twilio.com/2010-04-01/Accounts/ACCOUNTID/Messages.json \
--data-urlencode "From=+122344444" \
--data-urlencode "Body=Body" \
--data-urlencode "To=+13101111111" \
-u ACCOUNTID:PASSWORD

PHP 代码:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'ACCOUNTID' . ':' . 'PASSWORD');

预期的结果是得到消息,但我得到了

{"code": 21603, "message": "A 'From' phone number is required.", "more_info": "https://www.twilio.com/docs/errors/21603", "status": 400} 

我得到这个的原因是我不确定如何在 curl php 中从、body 和 to 传递。

【问题讨论】:

  • 谢谢,但我之前已经看过它们,并以某种方式尝试了它们 from to 参数不起作用@Emma
  • 我没有看到您在 php 代码中传递任何数据。
  • 由于代码政策,我限制了我的代码,所有变量都有数据

标签: php curl twilio


【解决方案1】:

你缺少的是

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($payload));

$payload 在哪里

$payload = [
    'From' => '+122344444',
    'To' => '+13101111111',
    'Body'   => 'This is the body...'
];


PHP代码:
$payload = [
    'From' => '+122344444',
    'To' => '+13101111111',
    'Body'   => 'This is the body...'
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'ACCOUNTID' . ':' . 'PASSWORD');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($payload));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 2014-10-05
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    相关资源
    最近更新 更多