php curl 未经授权但手动工作

php curl unauthorized but works manually

因此,如果我正在浏览 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);

有什么问题吗?

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