在托管服务器上返回 false(已启用 curl)


Curl return false on hostinger server (curl enabled)

使用:

托管免费
PHP 5.5.26
已启用 curl 7.19.7
"Laravel/framework": "5.2.*" 和 "Vladkens/VK": "^0.1.9"

我使用此函数得到错误响应( bool(false) ):

private function request($url, $method = 'GET', $postfields = array())
{
    curl_setopt_array($this->ch, array(
        CURLOPT_USERAGENT =>"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_POST => ($method == 'POST'),
        CURLOPT_POSTFIELDS => $postfields,
        CURLOPT_URL => $url
    ));
    return curl_exec($this->ch);
}

使用curl_getinfo($this->ch)获取此调试数据:

array(23) { ["url"]=> string(251) "https://api.vk.com/method/audio.search.json?access_token={{access_token}}&api_id={{api_id}}&q=21+Hunter+Hayes&random=1014×tamp=1453393550&v=2.0&sig={{sig}}" ["content_type"]=> NULL ["http_code"]=> int(0) ["header_size"]=> int(0) ["request_size"]=> int(0) ["filetime"]=> int(0) ["ssl_verify_result"]=> int(0) ["redirect_count"]=> int(0) ["total_time"]=> float(0) ["namelookup_time"]=> float(0) ["connect_time"]=> float(0) ["pretransfer_time"]=> float(0) ["size_upload"]=> float(0) ["size_download"]=> float(0) ["speed_download"]=> float(0) ["speed_upload"]=> float(0) ["download_content_length"]=> float(-1) ["upload_content_length"]=> float(-1) ["starttransfer_time"]=> float(0) ["redirect_time"]=> float(0) ["redirect_url"]=> string(0) "" ["primary_ip"]=> string(0) "" ["certinfo"]=> array(0) { } } 

如果我直接在浏览器中使用这个数组url值,我将得到正确的 api.vk.com 数据响应。

我错过了什么?
更新:
使用 echo $error = curl_error($this->ch); couldn't connect to host获取此消息

您似乎无法从服务器访问互联网。这听起来像是防火墙问题。转到您的面板,确保没有防火墙规则阻止您访问外部网站。由于您的托管计划,这可能是一个限制。