ฉันกำลังพยายามโหลดปฏิทินนี้:
https://bushnellbeacons.com/calendar.ics
ไปยังระบบเว็บภายในอื่น ฟีดปฏิทินใช้ได้ ฉันสามารถคลิกลิงก์ด้านบนและดาวน์โหลดฟีดได้ ปัญหาคือไซต์อื่นให้ข้อผิดพลาดทั่วไป "ไม่พบฟีด"
ดำเนินการตรวจสอบ หากฉันดาวน์โหลดไฟล์ ICS ในเบราว์เซอร์ของฉัน แล้วอัปโหลดบนเว็บเซิร์ฟเวอร์อื่น ฉันไม่มีปัญหาในการเพิ่ม URL นั้นลงในระบบปฏิทินเป้าหมาย ทฤษฎีการทำงานของฉันคือเซิร์ฟเวอร์หนึ่งสร้างไฟล์ ICS เมื่อเบราว์เซอร์ร้องขอ แต่เซิร์ฟเวอร์ที่สองพยายามดึงไฟล์ที่ยังไม่ได้สร้างขึ้น คำถามนี้ไม่เกี่ยวกับระบบปฏิทิน/เซิร์ฟเวอร์เป้าหมายและการแก้ไขปัญหา
วิธีแก้ปัญหาที่ฉันเสนอตอนนี้คือใช้ wget ในสคริปต์ cron บนเซิร์ฟเวอร์สองเป็นประจำเพื่อคว้าไฟล์ น่าเสียดายที่ wget ผลิต:
ส่งคำขอ HTTP แล้ว กำลังรอการตอบกลับ... 404 ไม่พบ
2021-11-01 17:13:20 ข้อผิดพลาด 404: ไม่พบ
ที่น่าสนใจคือ PowerShell สามารถทำ Invoke-WebRequest https://bushnellbeacons.com/calendar.ics และส่งคืนสิ่งที่ดูเหมือนฟีดปฏิทิน:
รหัสสถานะ : 200
คำอธิบายสถานะ: ตกลง
เนื้อหา : BEGIN:VCALENDAR
เวอร์ชัน:2.0
PRODID:-//SIDEARM Sports//NONSGML SIDEARM//EN
X-WR-CALNAME: กรีฑา
X-เผยแพร่-TTL:PT120M
เริ่มต้น: เวนต์
UID:vcal_4644-bushnellbeacons.com
DTSTAMP:20211102T001441Z...
RawContent : HTTP/1.1 200 ตกลง
การรักษาความปลอดภัยที่เข้มงวดในการขนส่ง: max-age=0;
X-Content-Type-Options: ไร้สาระ
X-XSS-การป้องกัน: 1; โหมด = บล็อก
นโยบายผู้อ้างอิง: ไม่มีผู้อ้างอิงเมื่อดาวน์เกรด
ความยาวเนื้อหา: 113757
แคชคอน...
แบบฟอร์ม : {}
ส่วนหัว : {[Strict-Transport-Security, max-age=0;], [X-Content-Type-Options, nosniff], [X-XSS-Protection, 1;
mode=block], [นโยบายผู้อ้างอิง, ไม่มีผู้อ้างอิง-เมื่อดาวน์เกรด]...}
รูปภาพ : {}
ช่องป้อนข้อมูล : {}
ลิงค์ : {}
ParsedHtml : mshtml.HTMLDocumentClass
RawContentLength : 113757
คำถามของฉันคือ:
- มีวิธีให้ wget ดำเนินการตามคำขอเว็บที่ดูเหมือนจะสร้างไฟล์ ICS หรือไม่ (เช่น powershell ดูเหมือนจะทำ)
- มีวิธีแก้ปัญหาที่หรูหรากว่านี้ไหม?
ขอขอบคุณ! ฉันยินดีที่จะชี้แจงตามความจำเป็น