我怎样才能发送一个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。