我正在尝试加载此日历: https://bushnellbeacons.com/calendar.ics 到另一个内部网络系统。日历提要很好 - 我可以点击上面的链接并下载提要。问题是其他网站给出了一个通用错误“无法找到提要”。
经过一番调查,如果我在浏览器中下载 ICS 文件,然后将其上传到另一台网络服务器,我就可以毫无问题地将该 URL 添加到目标日历系统。我的工作理论是,服务器一在浏览器请求时生成 ICS 文件,但服务器二试图获取尚未生成的文件。这个问题与目标日历系统/服务器及其故障排除无关。
我目前提出的解决方案是在服务器二上的 cron 脚本中定期使用 wget 来抓取文件。不幸的是,wget 会产生:
HTTP request sent, awaiting response... 404 Not Found
2021-11-01 17:13:20 ERROR 404: Not Found.
有趣的是,PowerShell 可以执行 Invoke-WebRequesthttps://bushnellbeacons.com/calendar.ics并返回一些类似于日历的信息:
StatusCode : 200
StatusDescription : OK
Content : BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//SIDEARM Sports//NONSGML SIDEARM//EN
X-WR-CALNAME: Athletics
X-PUBLISHED-TTL:PT120M
BEGIN:VEVENT
UID:vcal_4644-bushnellbeacons.com
DTSTAMP:20211102T001441Z...
RawContent : HTTP/1.1 200 OK
Strict-Transport-Security: max-age=0;
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Referrer-Policy: no-referrer-when-downgrade
Content-Length: 113757
Cache-Con...
Forms : {}
Headers : {[Strict-Transport-Security, max-age=0;], [X-Content-Type-Options, nosniff], [X-XSS-Protection, 1;
mode=block], [Referrer-Policy, no-referrer-when-downgrade]...}
Images : {}
InputFields : {}
Links : {}
ParsedHtml : mshtml.HTMLDocumentClass
RawContentLength : 113757
我的问题是:
- 有没有办法让 wget 执行似乎生成 ICS 文件的 Web 请求?(就像 powershell 似乎正在做的那样)
- 有没有更优雅的解决方案?
谢谢!我很乐意根据需要进行澄清。
答案1
wget -U 'Mozilla/4.0' https://bushnellbeacons.com/calendar.ics
不客气。