Пытаюсь получить события из календаря icloud, используя java/com.github.caldav4jJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Пытаюсь получить события из календаря icloud, используя java/com.github.caldav4j

Сообщение Anonymous »

Используя Java, я пытаюсь использовать com.github.caldav4j для загрузки событий из моего календаря iCloud.
Используя Caldav4j, я успешно получаю Principal_url, список календарей и URL-адрес календаря, который мне нужен.
Но теперь, когда я пытаюсь получить события из календаря, я получаю 400
Во многих статьях говорится 400 — это проблема с аутентификацией, но я предполагаю, что поскольку я использую те же самые учетные данные для получения URL-адреса календаря, с этими учетными данными все в порядке...
заранее спасибо за любую помощь.....
Пытаюсь получить
Сначала делаю
ICAL_PROD_ID = "-//Apple Inc.//iCloud Calendar//EN";

//my calendar path is from the property find
calendarPath = "/16*******/calendars/ad4****-****-481b-****-7f74****acfb/"

this.calDAVCollection = new CalDAVCollection(
calendarPath,
httpHost,
methodFactory,
ICAL_PROD_ID);

Я делаю
// Create calendar query directly instead of using GenerateQuery
CalendarQuery calendarQuery = new CalendarQuery();

// Create comp filter for VCALENDAR
CompFilter calendarCompFilter = new CompFilter("VCALENDAR");

// Create comp filter for VEVENT
CompFilter eventCompFilter = new CompFilter(Component.VEVENT);

// Set time range filter to specified dates
DateTime startDateTime = new DateTime(startDate);
DateTime endDateTime = new DateTime(endDate);
TimeRange timeRange = new TimeRange(startDateTime, endDateTime);
eventCompFilter.setTimeRange(timeRange);

// Add VEVENT filter to VCALENDAR filter
calendarCompFilter.addCompFilter(eventCompFilter);

// Set the comp filter to the query
calendarQuery.setCompFilter(calendarCompFilter);

// Request calendar data
CalendarData calendarData = new CalendarData();
calendarQuery.setCalendarDataProp(calendarData);

// Add debugging for query
logger.debug("Executing calendar query for date range: {} to {}", startDate, endDate);

// Execute the request using the collection's method
List calendars = calDAVCollection.queryCalendars(httpClient, calendarQuery);

ошибка, которую я получаю от CalDAVCollection.queryCalendars:
com.github.caldav4j.exceptions.CalDAV4JException: Problem executing method
at com.github.caldav4j.CalDAVCollection.getCalDAVResources(CalDAVCollection.java:927) ~[caldav4j-1.0.5.jar:?]
at com.github.caldav4j.CalDAVCollection.queryCalendars(CalDAVCollection.java:779) ~[caldav4j-1.0.5.jar:?]
at com.unitnet.calendar.caldav.service.iCloudCalendarService.getEvents(iCloudCalendarService.java:189) ~[classes/:?]
at com.unitnet.calendar.caldav.utils.CalDAVSyncThread.syncCalendar(CalDAVSyncThread.java:90) ~[classes/:?]
at com.unitnet.calendar.caldav.utils.CalDAVSyncThread.run(CalDAVSyncThread.java:50) ~[classes/:?]
Caused by: org.apache.jackrabbit.webdav.DavException
at org.apache.jackrabbit.webdav.client.methods.BaseDavRequest.getResponseBodyAsMultiStatus(BaseDavRequest.java:93) ~[jackrabbit-webdav-2.20.3.jar:?]
at com.github.caldav4j.CalDAVCollection.getCalDAVResources(CalDAVCollection.java:905) ~[caldav4j-1.0.5.jar:?]
... 4 more
Caused by: java.io.IOException: XML parsing error
at org.apache.jackrabbit.webdav.client.methods.BaseDavRequest.getResponseBodyAsDocument(BaseDavRequest.java:73) ~[jackrabbit-webdav-2.20.3.jar:?]
at org.apache.jackrabbit.webdav.client.methods.BaseDavRequest.getResponseBodyAsMultiStatus(BaseDavRequest.java:87) ~[jackrabbit-webdav-2.20.3.jar:?]
at com.github.caldav4j.CalDAVCollection.getCalDAVResources(CalDAVCollection.java:905) ~[caldav4j-1.0.5.jar:?]
... 4 more
Caused by: org.xml.sax.SAXParseException: Premature end of file.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204) ~[?:?]
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178) ~[?:?]
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400) ~[?:?]
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327) ~[?:?]
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465) ~[?:?]
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:1013) ~[?:?]
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605) ~[?:?]
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112) ~[?:?]
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542) ~[?:?]
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889) ~[?:?]
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825) ~[?:?]
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) ~[?:?]
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247) ~[?:?]
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342) ~[?:?]
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122) ~[?:?]
at org.apache.jackrabbit.webdav.xml.DomUtil.parseDocument(DomUtil.java:104) ~[jackrabbit-webdav-2.20.3.jar:?]
at org.apache.jackrabbit.webdav.client.methods.BaseDavRequest.getResponseBodyAsDocument(BaseDavRequest.java:69) ~[jackrabbit-webdav-2.20.3.jar:?]
at org.apache.jackrabbit.webdav.client.methods.BaseDavRequest.getResponseBodyAsMultiStatus(BaseDavRequest.java:87) ~[jackrabbit-webdav-2.20.3.jar:?]
at com.github.caldav4j.CalDAVCollection.getCalDAVResources(CalDAVCollection.java:905) ~[caldav4j-1.0.5.jar:?]



Подробнее здесь: https://stackoverflow.com/questions/796 ... b-caldav4j
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»