Apple Contacts首先将空vCard发送到SabreDAV,之后无法更新

时间:2018-09-05 17:23:39

标签: contacts carddav sabredav

我正在用SabreDAV实施CardDAV服务器,并在Apple Contacts(11.0)中对其进行测试。

我已经调试了通讯录应用发送的请求,我意识到了这一点: 当我创建新卡时,我花了10-15秒钟以上的时间,然后“通讯录”应用会先保存一张空卡:

PUT /addressbooks/username/default/fa8cf515-7dc3-4665-967e-3773dc6c050a.vcf 

BEGIN:VCARD
VERSION:3.0
PRODID:-//Apple Inc.//Mac OS X 10.13.6//EN
N:;;;
FN:
REV:2018-09-04T22:58:00Z
UID:fa8cf515-7dc3-4665-967e-3773dc6c050a
END:VCARD

SabreDAV创建卡并返回ETag。 之后,当我真正保存卡时,Contacts应用程序将整个卡再次发送到SabreDAV,但带有If-None-Match标题:

If-None-Match: *

因为带有uid的卡已经存在,所以SabreDAV返回412,这当然是正确的响应。

我该怎么办?不保存第一个空vcard?

如果我足够快地创建卡片,那么“通讯录”应用会在第一个请求中保存整个卡片,然后将其发送到If-None-Match标头中的etag,一切正常!

0 个答案:

没有答案