gpt4 book ai didi

http - CalDAV 客户端的 Report 方法不请求新的事件数据

转载 作者:可可西里 更新时间:2023-11-01 17:34:59 27 4
gpt4 key购买 nike

我目前正在为我的日历应用程序开发一个 caldav 同步服务器层。我能够回答日历客户端的所有初始请求,并且目前坚持使用 REPORT 方法。

当 PROPFIND 在 Calendar 上完成时,它会要求 CTag 和 Sync-Token。我确实通过提供 CTag 和 Sync-Token 来回答这个查询(目前模拟服务器,我动态生成这些值并为客户端提供服务)。

在下一个查询中,请求的方法是日历上的REPORT,如下所示:

客户要求:

REPORT URI  /users/admin%40a.de/calendar/ PROTOCOL HTTP/1.1
----------------------------------------
Accept-encoding gzip, deflate
Accept */*
Connection keep-alive
Prefer return=minimal
Host **************
Brief t
User-agent Mac+OS+X/10.10.5 (14F27) CalendarAgent/316.1
Depth 1
Authorization Basic YWRtaW5AYS5kZTpwYXNz
Accept-language en-us
Content-type text/xml
Content-length 260
Request body: <?xml version="1.0" encoding="UTF-8"?>
<A:sync-collection xmlns:A="DAV:">
<A:sync-token>http://calserver.org/ns/sync-token/1</A:sync-token>
<A:sync-level>1</A:sync-level>
<A:prop>
<A:getcontenttype/>
<A:getetag/>
</A:prop>
</A:sync-collection>

服务器响应:

响应头

Content-type: text/calendar;  charset=UTF-8
Connection: keep-alive
Date Thu, 17 Dec 2015 19:35:40 GMT
Transfer-encoding chunked
Http/1.1 207 Multi-Status

响应正文

<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<D:multistatus xmlns:D=\"DAV:\" xmlns:C=\"urn:ietf:params:xml:ns:caldav\" xmlns:E=\"urn:ietf:params:xml:ns:carddav\">
<D:response>
<D:propstat>
<D:href>/calendar/2601ddd19c1001.ics</D:href>
<D:prop>
<D:getcontenttype>text/calendar</D:getcontenttype>
<D:getetag>"334411222s12"</D:getetag>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
</D:multistatus>

现在我的问题是,在服务器响应中,我通过提供新的 ETag 值回答 REPORT 方法已经创建了一个新事件,但是客户端没有请求数据 ??

我应该如何以及何时提供新事件的日历数据以及客户的请求是什么???

最佳答案

  • 内容类型不应该是text/xml,应该是text/calendar
  • etag 需要用双引号括起来。
  • 我很确定按照您的方式在 uri 中使用 + 是个坏主意。如果您想对空格进行编码,请改用 %20,但最好完全避免任何类型的特殊编码。
  • 对同步收集报告的响应还必须在响应正文中包含当前同步​​ token 。参见 https://www.rfc-editor.org/rfc/rfc6578#section-6.4

关于http - CalDAV 客户端的 Report 方法不请求新的事件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34343468/

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