Meniru Permintaan GET Seperti Pelayar dengan Curl
Apabila membuat permintaan HTTP GET dengan Curl, kadangkala perlu meniru gelagat web pelayar untuk mengelakkan ralat pelayan. Begini cara untuk melakukannya:
Gunakan CURLOPT_USERAGENT
Sesetengah tapak web menyemak rentetan ejen pengguna untuk menentukan sama ada permintaan itu datang daripada penyemak imbas. Mulakan Curl dan tetapkan pilihan ejen pengguna dengan rentetan penyemak imbas yang dikehendaki:
$agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'; curl_setopt($ch, CURLOPT_USERAGENT, $agent);
Kendalikan Kuki (Pilihan)
Jika tapak web bergantung pada kuki, gunakan CURLOPT_COOKIE, Pilihan CURLOPT_COOKIEFILE dan/atau CURLOPT_COOKIEJAR untuk lulus dan menyimpan kuki:
curl_setopt($ch, CURLOPT_COOKIE, 'key1=value1; key2=value2'); curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt'); curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
Sahkan Sijil SSL (HTTPS Sahaja)
Permintaan melalui HTTPS memerlukan sijil SSL yang disahkan. Tetapkan CURLOPT_SSL_VERIFYPEER kepada palsu untuk mengabaikan pengesahan:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Kod Contoh
Berikut ialah skrip contoh yang menggabungkan pilihan ini:
$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);
Dengan menggunakan pilihan ini, anda boleh meniru permintaan GET seperti pelayar dengan tepat dengan Curl, memastikan pelayan bertindak balas seolah-olah permintaan itu datang daripada pelayar web sebenar.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencontohi Permintaan GET Seperti Pelayar dengan Curl?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!