web-dev-qa-db-ja.com

php curl:Webブラウザーとまったく同じようにgetリクエストをエミュレートするにはどうすればよいですか?

ブラウザで特定のajaxリクエストを開くと結果のページが表示されますが、curlでロードしようとすると、サーバーからエラーが表示されるWebサイトがあります。

ブラウザーをシミュレートするサーバーへのget要求を適切にエミュレートするにはどうすればよいですか?

それは私がやっていることです:

$url="https://new.aol.com/productsweb/subflows/ScreenNameFlow/AjaxSNAction.do?s=username&f=firstname&l=lastname";
ini_set('user_agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT
5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)');
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
print $result;
46
ufk

Curlモジュールはini_set( 'user_agent'、...)を尊重しますか? http://docs.php.net/function.curl-setopt で説明されているオプションCURLOPT_USERAGENTがあります。
サーバーによってテストされたCookieもありますか? CURLOPT_COOKIE、CURLOPT_COOKIEFILE、CURLOPT_COOKIEJARを使用して処理できること。

編集:リクエストはhttpsを使用しているため、証明書の検証でもエラーが発生する可能性があります。CURLOPT_SSL_VERIFYPEERを参照してください。

$url="https://new.aol.com/productsweb/subflows/ScreenNameFlow/AjaxSNAction.do?s=username&f=firstname&l=lastname";
$agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
var_dump($result);
66
VolkerK