当前位置: 首页 > 面试题库 >

php curl:如何完全像Web浏览器一样模拟get请求?

傅鸿波
2023-03-14
问题内容

有一些网站,当我在浏览器上打开特定的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);


 类似资料:
  • 本文向大家介绍基于Python模拟浏览器发送http请求,包括了基于Python模拟浏览器发送http请求的使用技巧和注意事项,需要的朋友参考一下 1.使用 urllib2 实现 2.使用 requests 模块 (1).get请求 (2).post请求 (3).使用session对象的写法 3.其他的一些请求方式 >>> r = requests.put("http://httpbin.org/

  • Web浏览器 web 浏览器(通常被称为浏览器)是一个用于检索、展示和遍历在万维网上的信息资源的软件应用程序. 信息资源被定义成统一资源定位符(URI/URL). 它可能是网页, 图片, 视频或者一个内容片断. 超链接的出现使用户能轻松的将浏览器导航到相关的资源, 尽管浏览器主要是为了使用万维网, 但它们还可以用来访问 Web服务器在私人网络所提供的信息或文件在文件系统. - Wikipedia

  • 问题内容: 背景 我正在为两个公益网站编写和使用一个非常简单的基于CGI的(Perl)内容管理工具。它为网站管理员提供事件的HTML表单,这些表单将填写字段(日期,位置,标题,描述,链接等)并保存。在该表格上,我允许管理员上传与事件相关的图像。在显示表单的HTML页面上,我还显示了上传图片的预览(HTML img标签)。 问题 当管理员想要更改图片时,会发生此问题。他只需要点击“浏览”按钮,选择一

  • 我在localhost中有一个wamp服务器。我试图从我的android应用程序发出http请求。但我不能把它弄对。许多人说10.0.2.2:8080将从emulator指向localhost。所以我试着从emulator在web浏览器中打开它。我输入的url是“10.0.2.2/cifi/test.php”。但emulator弹出错误为“网络:连接超时” 需要说明:如何使我的wamp服务器在本地

  • 内部Web浏览器 内部Web浏览器视图允许您从Eclipse Workbench窗口中浏览Internet。 要激活内部Web浏览器视图,请单击窗口,然后选择显示视图→其他。 在“显示视图”对话框的过滤器文本框中,输入浏览器 。 从树中选择Internal Web Browser ,然后单击OK 。 要导航到网页,请在“内部Web浏览器”视图的“URL”文本框中输入该网页的URL。

  • 我正在做一个项目,由于缺乏知识而受阻。代码是有效的,但我不知道3号网站是否认为它是被人点击的。 让我解释一下: 我一共有3个网站。 当点击按钮时,网站1重定向到网站2。 网站2检查推荐人是否来自网站1,并自动重定向到网站3。 我需要重定向(网站2- 迄今为止的代码: 我需要的最后一部分,使重定向(网站2)- 网站3检查裁判和所有的东西,发现这是一个人点击