我试图解析icloud日历(CalDav)。日历可以通过webcal协议访问。日历的地址看起来像webcal://p19-calendarws.icloud.com/ca/....
所以我的问题(希望很简单)是:如何用webcal协议发送请求?我对请求模块进行了尝试,但是得到了错误消息[Error: Invalid protocol: webcal:],nativ模块似乎不适合这样做。
"webcal://p19-calendarws.icloud.com/ca/**************";编辑:使用http-模块: var url =来尝试
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.
解决方案:首先,我必须在日历地址中用https://替换webcal://。苹果将重定向到日历的icalendar文件。由于重定向,我使用了请求模块,它很好地处理重定向。
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);
});发布于 2015-01-21 18:11:22
WebCal就是http。你所要做的就是更换这个计划。
之所以使用不同的方案,是因为浏览器能够很容易地使用不同的应用程序来处理请求,但这是100%的单一HTTP请求和一个GET。不是DAV。
https://stackoverflow.com/questions/28071912
复制相似问题