1

我在我的 php 代码中设置 post 参数时遇到问题。我有以下代码行:

$ch = curl_init();
curl_setopt($ch, CURLOPT_POSTFIELDS, "a=b");

在我的本地机器上,上面对 curl_setopt 的调用有效,并返回 true。但是,在我的服务器上,它返回 false。我能想到的两者之间的唯一区别是,在我的本地机器上我有 php 5.3.8 而服务器有 5.3.10。

关于为什么会发生这种情况或我能做些什么来解决它的任何想法?提前致谢。

附加信息:上面的这些代码行实际上是我尝试调试所看到的 curl 问题并将问题缩小到失败的行的结果。我遇到的问题实际上是在 Twilio api 中。在我的代码中,我调用:

$twilioClient = new Services_Twilio($twilioAccountSid, $twilioAccountToken);
$message = $twilioClient->account->sms_messages->create($fromNumber, $toNumber, $body);

并且该调用引发了异常。通过函数调用跟踪将我带到 Services_Twilio_TinyHttp->call() 函数。第 62 行 (curl_setopt_array) 正在返回错误事件,尽管它在本地工作。可以在这里找到代码https://github.com/twilio/twilio-php/blob/master/Services/Twilio/TinyHttp.php

4

1 回答 1

1

看起来您缺少此代码:

curl_setopt($ch, CURLOPT_POST, TRUE);

将 CURLOPT_POST 设置为 TRUE 的定义是:TRUE 表示进行常规 HTTP POST。这个 POST 是普通的 application/x-www-form-urlencoded 类型,最常用于 HTML 表单。

您可以在此处阅读有关各种 curl_setopt 选项的所有信息:http: //php.net/manual/en/function.curl-setopt.php

于 2012-07-05T19:59:05.003 回答