J'ai créé presque une API complète pour créer et supprimer des documents et des dossiers. Mais je ne parviens pas à mettre à jour les documents. C'était très facile lors de l'utilisation de gdata, mais comme ce code doit fonctionner sur tous les appareils Android, je dois utiliser le client google api java. Voici une méthode où je teste la mise à jour:Mise à jour du document google docs avec le client google api java
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;
}
}
Ce qui se passe est que je viens de créer un nouveau document (avec le contenu donné, la création d'un nouveau document fonctionne parfaitement). Si je fais ajouter le "If-Match: *" - en-tête, je reçois cette exception:
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)
...
Vous venez de me faire environ 8% de plus heureux, merci! – pgsandstrom
Oh, je visais 10%. Bummer;) –
Vous m'avez fait 3% plus heureux, donc je suppose que vous avez dépassé votre objectif maintenant. ;) –