1

次のように、Google Safe Browsing Lookup 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);

URL をダンプしてブラウザに貼り付けると、期待どおりの結果 (「マルウェア」など) が得られるため、URL が正しいことはわかっています。だから私はそれがcURLで何かに違いないと仮定しています。私はローカルホストで作業しており、php.ini、Php バージョン 5.4.4 で extension=php_curl.dll がコメント解除されています。

html_code は常に 0 です

4

2 に答える 2

1

CURLOPT_SSL_VERIFYPEER と CURLOPT_SSL_VERIFYHOST を false に設定するだけです。

cURL コード (http ステータス 0) に何か問題がありますか?

http://code.google.com/p/twitter-api/issues/detail?id=1291も確認してください。役立つ場合があります。API は異なりますが、問題は同じです。

于 2012-09-17T13:50:30.417 に答える
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);
于 2012-09-17T14:25:24.480 に答える