ホームページ >バックエンド開発 >PHPチュートリアル >Curl を使用して PHP の https リンクにアクセスする場合の注意点

Curl を使用して PHP の https リンクにアクセスする場合の注意点

WBOY
WBOYオリジナル
2016-06-23 13:11:511139ブラウズ

Youku Video の開発インターフェイスを必要とするタスクがあります。curl を使用してデータにアクセスして取得したいと考えています。一般的な記述方法に従ってリクエストを記述し、データを出力すると false 値が返されます。最初は、何らかのクロール防止検出などが行われているのかと思いました。useragent パラメーターを追加しても機能しませんでした。後で思ったのですが、インターフェイスの URL は https プロトコルを使用しており、SSL 認証が必要です。その後、インターネットで関連情報を検索して解決策を見つけたので、記録します。

リクエストには、次の 2 行のコードを追加するだけです

php;auto-links:false;">curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);

上記のコードは、証明書内の CA 認証とドメイン名認証が必要ないことを示しています

コード全体は以下に添付されています

<?php    $ch=curl_init();    $url='https://openapi.youku.com/v2/videos/by_category.json?';//请求接口参数未写完整,不影响代码    curl_setopt($ch,CURLOPT_URL,$url);    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);    $res=curl_exec($ch);      $res=json_decode($res,1);    var_dump($res);?>
必要な場合証明書を確認するには、次のコードを使用できます

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,true); // 只信任CA颁布的证书$cacert=getcwd().'/youku.crt'; //证书的位置curl_setopt($ch, CURLOPT_CAINFO, $cacert); // CA根证书curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,1); //// 检查证书中是否设置域名

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。