English 中文(简体)
CURL 和 Web 浏览器之间的差异?
原标题:Difference between cURL and web browser?
  • 时间:2012-05-25 16:27:31
  •  标签:
  • php
  • curl
  • get

我试图从以下的URL检索一个网页:

< a href="http://www.medicare.gov/find- a-doctor/provider-resultures.aspx?searchtype=OHP&specgrpids=922&loc=43615&pref=No&pref=未知的 &dist=25&lat=41.65603&lng=83366676" rel=nforpol >http://www.medicare.gov/find-a-doctor/providr-resultures.aspx?Searchty=OHP&specgrpids=922&loc=43615&pref=No&gender=未知&damp=25&lat=41.6603&lng=836676

当我将它粘贴到浏览器中时, 它有效, 但是当我通过 CURL 运行时, 我收到一个页面, 错误如下 : “ 请求的 URL 的一个或多个查询字符串参数无效或有意外值, 请更正并重试 。

如果我提供不同的用户 Agency 或 referreer, 这似乎没有什么区别。 有一个改变, 所以我使用 CURLOPT_ FOLLOWLOCION 。

这是我的代码:

$ch = curl_init($page);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT,  Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0 );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

$html = curl_exec($ch);
curl_close($ch);
echo $html;

为何这样的请求会在浏览器里有效 而不与 CURL 合作呢?

最佳回答

这个网站需要一套ASP.NET-Sulimid cookie来回应。 我在我的CURL请求中增加了以下内容:

curl_setopt($ch, CURLOPT_COOKIEJAR,  cookie.txt );
curl_setopt($ch, CURLOPT_COOKIEFILE,  cookie.txt );
curl_setopt($ch, CURLOPT_COOKIE,  ASP.NET_SessionId=ho1pqwa0nb3ys3441alenm45; path=/; domain=www.medicare.gov );

我不知道任何会话代号是否有效, 但是它尝试了几个随机的,他们都工作了。

问题回答

您的浏览器正在发送 CURL 不是 cURL 的 cookie 。 请检查您使用浏览器工具或 Fidler 发送到网站的 cookie - 您需要通过同样的方式 。





相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...