我怎样才能发送一个webcal请求与node.js?

我尝试parsing一个icloud日历(CalDav)。 日历可以通过webcal-protocol访问。 日历的地址看起来像webcal://p19-calendarws.icloud.com/ca/....

所以我(希望容易)的问题是:我怎样才能发送请求与webcal协议? 我试图与请求模块,但得到了错误消息[Error: Invalid protocol: webcal:]也nativ http模块似乎不适合。

编辑:我的尝试与http模块:var url =“webcal://p19-calendarws.icloud.com/ca/**************”;

 var http = require('http'); http.get(url, function(res) { console.log("Got response: " + res.statusCode); }).on('error', function(e) { console.log("Got error: " + e.message); }); 

获取以下错误: Error: Protocol:webcal: not supported.

解决scheme:首先,我必须用日历地址中的https://replacewebcal:// 。 苹果将​​redirect到日历的icalendar文件。 由于redirect我使用请求模块,它处理redirect非常好。

 var request = require('request'); var calendarUrl = 'webcal://p19-calendarws.icloud.com/*****'; var options = { url: calendarUrl.replace('webcal://', 'https://'), gzip: true }; request(options, function (error, response, icalData) { console.log(icalData); }); 

WebCal只是http。 你所要做的就是replace这个scheme。

使用不同scheme的原因是,浏览器能够轻松地使用不同的应用程序来处理请求,但它是100%的单个HTTP请求和GET 。 这不是DAV。