【问题标题】:cURL/WGET triggers error 500, browser works finecURL/WGET 触发错误 500,浏览器工作正常
【发布时间】:2018-10-13 15:29:10
【问题描述】:

我现在已经面临这个问题好几个星期了,但我自己找不到解决方案。 当我使用网络浏览器转到https://insolventies.rechtspraak.nl/Services/VerslagenService/getPdf/01_obr_18_65_F_V_02 时,它显示的文档很好,当我使用 cURL 或 WGET 时,它给我一个 HTTP/500 错误。尝试了不同的机器,CentOS、Debian、Windows 和 MacOS,但它们似乎都不起作用。我尝试使用命令行、php 和 asp.net,但仍然没有运气。在我看来,使用网络浏览器以外的东西不起作用,欺骗用户代理也不起作用。我也尝试联系服务器管理员,但他们不愿意提供日志文件中的任何详细信息。 谁能帮我? 谢谢!

【问题讨论】:

  • 你可能遗漏了一些标题或使用了错误的内容类型,从浏览器访问它,启动浏览器的开发者工具,去网络看看浏览器发送什么标题
  • 无论如何网站应该给你 4xx 状态码而不是 500 内部服务器错误
  • Cookie:X-CSRF-Token=7OqvnfwSephL/hMOxAxK5G4ji8BwQRacGjQpk/zHLlD1tviIIcFiRUrETorUMNuYGCUiT6B0dBVQYlqsrQ0cCsJkPGH1i2wtCQmds1UDncw=
  • 以上是一个包含一些 CSRF 令牌的 cookie,只能通过对某个 url 的先前请求获得

标签: curl wget


【解决方案1】:

在 cURL 中添加标题有效!

示例:

$ch = curl_init("https://insolventies.rechtspraak.nl/Services/VerslagenService/getPdf/01_obr_18_65_F_V_02");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Connection:keep-alive',
'Cache-Control:max-age=0',
'Upgrade-Insecure-Requests:1',
'User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding:gzip, deflate, br',
'Accept-Language:nl-NL,nl;q=0.9,en-US;q=0.8,en;q=0.7',
));
$data = curl_exec($ch);
curl_close($ch);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 2017-03-17
    • 2018-03-15
    • 2019-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多