我正在尝试将此日历: https : //bushnellbeacons.com/calendar.ics 加载到另一个内部网络系统。日历提要很好 - 我可以单击上面的链接并下载提要。问题是其他站点给出了一般错误“找不到源”。
做一些调查,如果我在浏览器中下载 ICS 文件,然后将其上传到另一个网络服务器,我可以将该 URL 添加到目标日历系统。我的工作理论是,服务器一在浏览器请求时生成 ICS 文件,但服务器二正试图抓取尚未生成的文件。这个问题与目标日历系统/服务器和故障排除无关。
我现在提出的解决方案是定期在服务器 2 上的 cron 脚本中使用 wget 来获取文件。不幸的是, wget 产生:
HTTP request sent, awaiting response... 404 Not Found
2021-11-01 17:13:20 ERROR 404: Not Found.
有趣的是,PowerShell 可以执行 Invoke-WebRequest https://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似乎正在做的那样)
- 有没有更优雅的解决方案?
谢谢!我很乐意根据需要进行澄清。
wget -U 'Mozilla/4.0' https://bushnellbeacons.com/calendar.ics
别客气。