非URL文字列での200 HTTPコード
-
30-09-2019 - |
質問
$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$ch=curl_init();
curl_setopt ($ch, CURLOPT_URL,$url );
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch,CURLOPT_VERBOSE,false);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch,CURLOPT_SSLVERSION,3);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);
$page=curl_exec($ch);
//echo curl_error($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
私は自分のプロジェクトでカールを使用しています。 WebサイトのHTTPコードを取得しています。しかし、「asdasd」($ url = "asdasd")を試してみると、httpコードを返します。しかし、「ASDASD」はWebサイトではありません。なぜHTTPコードが200であるのですか?
解決
からの返品値を確認することをお勧めします curl_exec
最初。それは言います マニュアル:
戻り値
TRUE
成功についてまたはFALSE
失敗時。ただし、CURLOPT_RETURNTRANSFER
オプションが設定されており、成功の結果を返します。FALSE
失敗時。
にとって curl_getinfo
あります サイドノート:
ハンドルが再利用されている場合、この関数によって収集された情報は保持されます。これは、この関数によって統計が内部的にオーバーライドされない限り、以前の情報が返されることを意味します。
そのため、HTTP 200は以前のCurl Inkocationの結果である可能性があります。
他のヒント
ローカルで開発し、カスタムマネージドDNSサービスを使用すると、別の可能なエラーが発生する可能性があります。おそらく、Opendnsが行っているようなマネージャーページをいくつか取得できます。
所属していません StackOverflow