【发布时间】:2021-08-19 18:33:48
【问题描述】:
我们正在运行 WordPress,其中一个非常古老的脚本会读取 iCal 日历的 URL:
$webcal = 'http://pXX-calendars.icloud.com/published/2/verylongstring';
if(!$data = file_get_contents($webcal, false, stream_context_create(array('ssl' => array('verify_peer' => false, 'verify_peer_name' => false))))) {
echo "<!-- could not read calendar -->\n\r";
}
最近失败了,不知道为什么。
一年前我将 file_get_contents() 从
file_get_contents($webcal)
到
file_get_contents($webcal, false, stream_context_create(array('ssl' => array('verify_peer' => false, 'verify_peer_name' => false)))))
因为读取失败,修改后又成功了。
当我们在浏览器中输入 $webcal URL 时,我们会收到 502 Bad Gateway Error。
也许 Apple 改变了一些东西(比如身份验证或其他)?
发生了什么,我们该如何解决?
【问题讨论】:
-
搜索我看到的错误:“502 Bad Gateway Error 意味着您连接到的 Web 服务器正在充当从另一台服务器中继信息的代理,但它得到了错误的响应来自另一台服务器。......服务器可能过载或两台服务器之间存在网络问题,这只是一个暂时的问题”
-
@anmari:是的,我也是这么想的,但是这个“临时”已经持续了好几个星期了。
-
试试另一个测试日历?我只是在我的 icloud 上尝试过(不是 mac 用户),只要将非官方的 webcal 替换为官方的 https 或 http rfc5545 协议,我就可以访问 ics 文件。
-
我也看到你说这是一个非常古老的脚本。由于仅在通过浏览器窗口访问时也存在问题,因此该 url 也可能是旧的?检查是否有等价的新url?
-
日历 -> caldev URI 子域更改为我修复了它。