【问题标题】:php curl unauthorized but works manuallyphp curl未经授权但手动工作
【发布时间】:2018-01-19 14:20:09
【问题描述】:

所以,如果我正在浏览 http://www.example.com/user1.jpg,我会看到用户的图片。 但是,如果我通过 PHP 从我的本地主机网络服务器(所以相同的 IP)发出 curl 请求,它会引发 401 未经授权。 我什至尝试更改用户代理,但仍然没有成功。

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'http://example.com/user1.jpg',
    CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0'
));
$resp = curl_exec($curl);

echo $resp;
curl_close($curl);

有什么问题?

【问题讨论】:

  • 好吧,您尝试“卷曲”的 URL 给了您 401,您需要知道为什么,您是否拥有该 URL?
  • 我不拥有该 URL,但如果我从 Chrome 浏览,它是否有效?相同的IP,相同的机器。 curl 在同一台机器内本地执行。对我来说没有意义
  • 通常,这意味着您需要一个(可能经过身份验证的)cookie 会话才能下载图像。

标签: php curl unauthorized


【解决方案1】:

我使用 Fiddler 工具分析了 3 个 GET 请求的标头。前两个是 401 Unauthorized,第三个在没有输入凭据的情况下被接受(可能已实现 SSON)。 它使用的是 NTLM 身份验证协议,因此使用“--ntlm username:password”从 CLI 运行 curl 为我完成了这项工作。

【讨论】:

    猜你喜欢
    • 2016-11-08
    • 2020-10-20
    • 2017-02-10
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多