gpt4 book ai didi

php - 如何像 Web 浏览器一样模拟获取请求?

转载 作者:IT王子 更新时间:2023-10-29 00:50:28 26 4
gpt4 key购买 nike

当我在浏览器上打开特定的 ajax 请求时,有些网站会得到结果页面。但是当我尝试使用 curl 加载它们时,我收到来自服务器的错误。

如何正确模拟对将模拟浏览器的服务器的 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;

最佳答案

您确定 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);

关于php - 如何像 Web 浏览器一样模拟获取请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2440729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com