2012-11-29 37 views
1

我试图在我的网站中使用Google商家信息自动填充API,但是当我提交url(在本例中,通过cURL on php)时,页面返回没有结果(完全空白页)。但是,只有当我从我的虚拟主机呼叫页面时才会发生这种情况; localhost dev应用程序正常工作。如果我将下面的URL粘贴到浏览器中,它也可以正常工作。 我的PHP测试页有这样的事情:google api v3本地(开发)关键作品但未生产

 

    function curl_file($url, $timeout=0){ 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     //curl_setopt ($ch, CURLOPT_HEADER, 1); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
     $str = curl_exec($ch); 
     curl_close($ch); 
     return $str; 
    } 

    $content = curl_file("https://maps.googleapis.com/maps/api/place/autocomplete/json?input=flamboyant&location=-16.698053,-49.268947&radius=20000&sensor=false&key=AIzaSyBzdiVqEIh2CXBm3gNUsvWdIl1Z-NvW298"); 
    echo $content; 

变量内容应该呼应相同的JSON响应,在浏览器中,但页面显示绝对空白。 有人可以帮我解决这个问题吗?

p.s .:我的google api键被设置为“允许任何引用者”。我试图穿上Rerefers的URL站点* .imoveisgo.com/*,但它也不起作用。

谢谢大家!

回答

0

我认为这是cURL的SSL问题。请尝试下面的代码:

function curl_file($url, $timeout=0){ 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    //curl_setopt ($ch, CURLOPT_HEADER, 1); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
    $str = curl_exec($ch); 
    if(curl_errno($ch)) { 
    echo "Err#".curl_error($ch); 
    echo curl_error($ch); 
    } 
    curl_close($ch); 
    return $str; 
} 

$content = curl_file("https://maps.googleapis.com/maps/api/place/autocomplete/json?input=flamboyant&location=-16.698053,-49.268947&radius=20000&sensor=false&key=AIzaSyBzdiVqEIh2CXBm3gNUsvWdIl1Z-NvW298"); 
echo $content; 
+0

我不知道这个SSL问题。使用代码,我可以在证书验证中看到一些错误。 – user1863009

+0

我不知道这个SSL问题。使用代码,我可以在证书验证中看到一些错误。我发现了一个忽略此验证的代码。 'curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,false);' Thansk很多! – user1863009

+0

不客气。 – wf9a5m75

相关问题