Ich habe fast eine vollständige API zum Arbeiten, mit dem Erstellen und Löschen von Dokumenten und Ordnern. Aber ich schaffe es nicht, Dokumente zu aktualisieren. Es war sehr einfach bei der Verwendung von gdata, aber da dieser Code auf allen Android-Geräten funktioniert, muss ich den Google API-Java-Client verwenden. Hier ist ein Verfahren, in dem ich die Aktualisierung testen:Aktualisierung von Google Docs-Dokument mit Google API-Java-Client
public void updateTest() throws IOException {
InputStreamContent isContent = new InputStreamContent();
isContent.inputStream = new ByteArrayInputStream("NEW CONTENT".getBytes("UTF-8"));
isContent.type = "text/plain";
HttpRequest request = transport.buildPostRequest();
request.setUrl("https://docs.google.com/feeds/default/media/document:0A[snip]3Y");
request.content = isContent;
// request.headers.set("If-Match", "*");
try {
request.execute().parseAs(DocumentListEntry.class);
} catch (HttpResponseException e) {
if (Constant.DEBUG) Log.d(TAG, "error: " + e.response.parseAsString());
throw e;
} catch (ClientProtocolException e) {
if (Constant.DEBUG) Log.d(TAG, "error: " + e.getMessage());
throw e;
}
}
Was passiert, ist, dass ich gerade ein neues Dokument erstellen (mit dem angegebenen Inhalt, ein neues Dokument funktioniert perfekt erstellen). Wenn ich hinzufügen, tun das „If-Match: *“ - Header, bekomme ich diese Ausnahme:
11-19 11:17:16.536: DEBUG/DocsAPI(32195): error: <errors xmlns='http://schemas.google.com/g/2005'>
11-19 11:17:16.536: DEBUG/DocsAPI(32195): <error>
11-19 11:17:16.536: DEBUG/DocsAPI(32195): <domain>GData</domain>
11-19 11:17:16.536: DEBUG/DocsAPI(32195): <code>noPostConcurrency</code>
11-19 11:17:16.536: DEBUG/DocsAPI(32195): <internalReason>POST method does not support concurrency</internalReason>
11-19 11:17:16.536: DEBUG/DocsAPI(32195): </error>
11-19 11:17:16.536: DEBUG/DocsAPI(32195): </errors>
11-19 11:17:16.536: WARN/System.err(32195): com.google.api.client.http.HttpResponseException: 501 Not Implemented
11-19 11:17:16.540: WARN/System.err(32195): at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:209)
...
Sie hat mich etwa 8% mehr glücklich, dank einfach hinzugefügt werden! – pgsandstrom
Oh, ich war auf 10% ausgerichtet. Bummer;) –
Du hast mich 3% glücklicher gemacht, also denke ich, dass du dein Ziel jetzt übertroffen hast. ;) –