gpt4 book ai didi

node.js - 如何使用 node.js 发送 webcal 请求?

转载 作者:太空宇宙 更新时间:2023-11-03 23:07:56 25 4
gpt4 key购买 nike

我尝试解析 icloud 日历 (CalDav)。该日历可通过 webcal 协议(protocol)访问。日历的地址类似于 webcal://p19-calendarws.icloud.com/ca/....

所以我的(希望很简单)问题是:我如何使用 webcal 协议(protocol)发送请求?我用请求模块尝试了它,但收到了错误消息 [Error: Invalid protocol: webcal:] 而且 nativ http-module 似乎不适合于此。

编辑:我尝试使用 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);
});

出现以下错误:错误:协议(protocol):webcal:不支持。

解决方案:首先,我必须将日历地址中的 webcal:// 替换为 https:// 。 Apple 将重定向到日历的icalendar 文件。由于重定向,我使用 request模块,它可以很好地处理重定向。

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。您所要做的就是更换方案。

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

关于node.js - 如何使用 node.js 发送 webcal 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28071912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com