1
我想通過caldav協議檢索基於它的UID的特定ICloud事件。Icloud日曆通過caldav通過uid檢索事件
<C:calendar-query xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:prop>
<D:getetag/>
<C:calendar-data>
<C:comp name="VCALENDAR">
<C:prop name="VERSION"/>
<C:comp name="VEVENT">
<C:prop name="SUMMARY"/>
<C:prop name="UID"/>
<C:prop name="DTSTART"/>
<C:prop name="DTEND"/>
<C:prop name="DURATION"/>
<C:prop name="RRULE"/>
<C:prop name="RDATE"/>
<C:prop name="EXRULE"/>
<C:prop name="EXDATE"/>
<C:prop name="RECURRENCE-ID"/>
</C:comp>
<C:comp name="VTIMEZONE"/>
</C:comp>
</C:calendar-data>
</D:prop>
<C:filter>
<C:comp-filter name="VCALENDAR">
<C:comp-filter name="VEVENT">
<C:prop-filter name="UID">
<C:text-match>$$EVENT_UID$$</C:text-match>
</C:prop-filter>
</C:comp-filter>
</C:comp-filter>
</C:filter>
當我更換C:丙濾波器名稱=「UID」由C:丙濾波器名稱=「發明內容」,請求正常工作與一個204,但我嘗試用UID,我得到了一個403 Forbidden。
有點偏離主題,但只是爲了確保:請記住,文本匹配執行* substring *搜索。因此,如果您執行上述操作,請確保您進一步篩選查詢結果以獲得完全匹配。 (例如,一個UID可能是AA而另一個是AABB)。 – hnh
這也不能很好地回答你的問題,但它可能會幫助你:如果你在嘗試使用PROPFIND或類似的方法列出事件後獲取事件,我會通過''''來完成。與通過UID進行提取和查詢不同,它通常可以保證所有未完全破解的服務器都能支持。 –