在托管服务器上卷曲 return false(启用卷曲)
Curl return false on hostinger server (curl enabled)
使用:
hostinger free
php 5.5.26
curl enabled 7.19.7
"laravel/framework": "5.2.*" and "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
您似乎无法从您的服务器连接到互联网。
听起来像是防火墙问题。
转到您的面板并确保没有防火墙规则阻止您访问外部网站。由于您的托管计划,这可能是一个限制。
使用:
hostinger free
php 5.5.26
curl enabled 7.19.7
"laravel/framework": "5.2.*" and "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
您似乎无法从您的服务器连接到互联网。 听起来像是防火墙问题。 转到您的面板并确保没有防火墙规则阻止您访问外部网站。由于您的托管计划,这可能是一个限制。