cURL从Google安全浏览查询中获取响应

时间:2012-09-17 13:37:46

标签: php curl

我正在尝试使用Google安全浏览查找API进行响应,如下所示:

$url ="https://sb-ssl.google.com/safebrowsing/api/lookup?client=myappname&apikey=mykey&appver=1.0&pver=3.0&url=".urlencode($myurl);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
$body = curl_exec($ch);
$info = curl_getinfo($ch);

我知道我的网址是正确的,因为如果我将其转储然后将其粘贴到浏览器中,我会得到预期的结果(例如“恶意软件”)。 所以我假设它必须是cURL的东西。我正在使用localhost和extension = php_curl.dll在我的php.ini,Php版本5.4.4中未被注释

html_code始终为0

2 个答案:

答案 0 :(得分:1)

只需将CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST设置为false。

Anything wrong with my cURL code (http status of 0)?

同时检查http://code.google.com/p/twitter-api/issues/detail?id=1291,这可能会有所帮助。这是不同的API,但无论如何都有同样的问题。

答案 1 :(得分:1)

这里很好地描述了问题及其解决方案:

http://richardwarrender.com/2007/05/the-secret-to-curl-in-php-on-windows/

基本上,如果您没有使用独立版本的cURL,那么cURL函数可能不包含我的情况下需要的证书包,因为我尝试连接到安全主机。

$ch = curl_init();
// Apply various settings
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_CAINFO, "C:/xampp/ca-bundle.crt"); //path to the CA-bundle
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec ($ch);
curl_close($ch);