“webcal://”是一个非官方的 URI 方案,请参阅 Wikipedia上的文章。
因此,它可能代表一个或另一个后端实现 - 例如,您正在调用的 Web 服务器可能正在使用任何提到的协议实现,例如WebDAV、CalDAV或OpenDAV
但是,如果您只想读取文件的内容,那么任何 HTTP 客户端都应该这样做,因为上述协议是基于 HTTP 的。
这是一个关于如何使用 URL 自己的打开HttpURLConnection机制来读取远程 iCal 的示例:
URL calendarURL = new URL("http://www.facebook.com/ical/b.php?uid=myUID&key=myKEY");
URLConnection connection = calendarURL.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while (reader.ready()) {
System.out.println(reader.readLine());
}
如您所见,我已将原始 URL 从
webcal://www.facebook.com/ical/b.php?uid=MYUID&key=MYKEY
至
http://www.facebook.com/ical/b.php?uid=MYUID&key=MYKEY
,因为我们使用 java.net.URL 并且默认情况下 Java 不识别此协议。如果您要联系的 Web 服务器确实只通过 webcal:// 提供内容,那么您可能需要使用适当的客户端(基于服务器使用的确切协议实现)。例如,有许多框架提供 WebDAV 客户端功能,例如JackRabbit、Sardine等。
如果您提供有关服务器类型的更多信息,我们可以进一步挖掘。