为什么404错误通过PHP cURL GET,但在浏览器中工作正常?

时间:2011-12-09 01:05:21

标签: php curl http-status-code-404

StumbleUpon最近更改了他们的框架,他们的API不再有效,所以我正在尝试编写一个PHP脚本来访问我的Stumble历史记录。

令人尴尬的是,我陷入了尝试获取登录页面的简单步骤;)

https://www.stumbleupon.com/login/在我的浏览器中正常加载

但是这个PHP代码显示了404页面:

    // Vars
    $url = "https://www.stumbleupon.com/login/";
    $user_agent = "Mozilla/5.0";

    // Curl
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);

    $response = curl_exec($ch);     

    echo $response;

我认为他们可能阻止某些用户代理,所以我尝试过我的浏览器使用的那个,但没有运气。我也尝试从不同的IP运行脚本以消除IP禁止问题。我真的对这个很无能为力......非常奇怪。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

请尝试使用https://www.stumbleupon.com/login.php。您输入的网址会为我返回404。

答案 1 :(得分:1)

他们可能正在寻找其他一些HTTP标头。您应该尝试查看浏览器在请求此页面时使用live http headers之类的内容所执行的操作,并尝试将一个HTTP标头一次合并到您的脚本中,并查看哪一个解决了您的问题。