【问题标题】:CURL gives 500 Internal server errorCURL 给出 500 内部服务器错误
【发布时间】:2016-09-05 20:12:25
【问题描述】:

我无法使用 CURL 进行 API 调用。下面是使用 CURL 进行 API 调用的代码

$ch=curl_init("http://sms.geekapplications.com/api/balance.php?authkey=2011AQTvWQjrcB56d9b03d&type=4");

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER,
array("Authorization: Bearer"));

// execute the api call
$result = curl_exec($ch);
echo ($result);

【问题讨论】:

  • 请打印 curl_error($ch);并告诉它返回什么
  • 它没有显示任何信息,但是当我评论第一行 $ch=curl_init("sms.geekapplications.com/api/…); 如果我打印任何消息,一切正常。
  • 如果那是您真正的身份验证密钥,您可能希望在将其发布到 Internet 后进行更改。

标签: php codeigniter curl


【解决方案1】:

首先,您可能想为此使用一个函数.. 而您的 CURL 构建不正确。请看我的例子

//gets geekapplications SMS balance
function getBalance() {
    $url = 'http://sms.geekapplications.com/api/balance.php?' . http_build_query([
            'authkey' => '2011AQTvWQjrcB56d9b03d',
            'type' => '4'
        ]);
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    $http = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    if ($http == 200) {
        $json = @json_decode($response, TRUE);
        return $json;
    } else {
        echo 'There was a problem fetching your balance...';
    }
}

在你的控制器中使用它尝试print_r($this->getBalance());应该输出一个带有你的余额的数组。

【讨论】:

  • 不要在 json 解码中使用 @ 我知道解码时遇到 json 错误的可能性几乎没有,但最好不要抑制错误
  • @GeoPhoenix 是的,你是对的。只是有时如果没有配置 php json_decode 会显示 php itslef 的错误消息.. 所以 @ 只是忽略它
  • 当在控制器中调用上述函数时,您能否建议我如何在按钮单击时在 VIEW 中显示此值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-16
  • 2012-12-31
相关资源
最近更新 更多