Не удается получить исключения из событий календаря Google по идентификатору события в Java

Я работал с Gdata API для Java (v2) и выяснил, как получать события по их идентификатору. Однако у меня возникают проблемы с извлечением исключений для повторяющихся событий.

Для обычного мероприятия я бы взял его так:

CalendarEventEntry event = getCalendarService().getEntry(new URL("https://www.google.com/calendar/feeds/"+googleCalId+"/private/full/"+eventId), CalendarEventEntry.class);

и запрашиваемый URL будет выглядеть примерно так:

https://www.google.com/calendar/feeds/772olgd23vedk7cmvmqgcke5jps%40group.calendar.google.com/private/full/6qlnf002ge3kh6fmp3i6skbuk

И это приносит без проблем!

Очень просто.

Однако, когда я пытаюсь получить событие, которое является исключением для повторяющегося события, используя тот же метод, я сталкиваюсь с проблемами. URL повторяющегося события будет

https://www.google.com/calendar/feeds/772olgd23vedk7cmvmqgcke5jps%40group.calendar.google.com/private/full/6qlnf002ge3kh6fmp3i6skbuk_20120112

Тот же URL, с добавлением _20120112. Характер проблемы:

com.google.gdata.util.ResourceNotFoundException: Not Found
<html><head><meta http-equiv="content-type" content="text/html;charset=UTF-8">
<title>Error</title>
<style type="text/css">body {font-family: arial,sans-serif}</style></head>
<body text="#000000" bgcolor="#ffffff"><table border="0" cellpadding="2" cellspacing="0" width="100%"><tr><td rowspan="3" width="1%" nowrap><b><font face="times" size="10"><font color="#0039b6">G</font> <font color="#c41200">o</font> <font color="#f3c518">o</font> <font color="#0039b6">g</font> <font color="#30a72f">l</font> <font color="#c41200">e</font></font>&nbsp;&nbsp;</b></td>
<td>&nbsp;</td></tr>
<tr><td bgcolor="#3366cc"><font face="arial,sans-serif" color="#ffffff"><b>Error</b></font></td></tr>
<tr><td>&nbsp;</td></tr></table>
<blockquote>Cannot access the calendar you requested</blockquote>
<p></p>
<div style="background:#3366cc; width:1px; height:4px"></div></body></html>

        at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:591)
        at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:563)
        at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:552)
        at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:530)
        at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:535)
        at com.google.gdata.client.Service.getEntry(Service.java:1352)
        at com.google.gdata.client.GoogleService.getEntry(GoogleService.java:567)
        at com.google.gdata.client.Service.getEntry(Service.java:1278)
        at com.testsoftware.google.CalendarServiceManager.getEventById(CalendarServiceManager.java:410)
        ...stack of my program here...
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)

У кого-нибудь есть идеи, почему это происходит, или лучшие способы сделать это?

1 ответ

Решение

Итак, после долгих испытаний и разработок я пришел к выводу, что вы можете извлекать исключения из повторяющихся событий так же, как вы извлекаете обычные события, с одной оговоркой: их нельзя отменить.

Человек, что головная боль:-P

Другие вопросы по тегам