我已經得到了幾乎完整的API工作,與創建和刪除文檔和文件夾。但我無法更新文檔。使用gdata時非常簡單,但由於此代碼必須適用於所有Android設備,因此我必須使用google api java客戶端。這裏是我測試更新的方法:更新谷歌文檔與谷歌API api客戶端
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;
}
}
什麼情況是,我只需要創建一個新的文件(與給定的內容,創建一個新的文件運行完美)。如果我添加「如果 - 匹配:*」 - 頭,我得到這個異常:
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)
...
你只是讓我約8%更開心,謝謝! – pgsandstrom 2010-11-19 14:07:05
哦,我的目標是10%。 Bummer;) – 2010-11-19 14:18:45
你讓我快樂3%,所以我猜你現在已經超出了你的目標。 ;) – 2011-06-02 11:47:15