使用gdata上传csv - Content-Length错误

时间:2010-11-27 04:32:01

标签: android gdata-api google-docs-api

我正在尝试使用Android应用程序中的gdata项目。我正在尝试将新的csv文件上传到谷歌文档,但我一直遇到411错误(内容长度)。  我的代码看起来像:

GoogleService ss = new SpreadsheetService("testApp");
ss.setUserCredentials("<username>", "<password>");

DocumentListEntry newEntry = null;
newEntry = new DocumentListEntry();
newEntry.setTitle(new PlainTextConstruct("my.csv"));
TextConstruct tc = TextConstruct.plainText("1,2,3,4,5,6,7,8,9,10");         
newEntry.setContent(new TextContent(tc));

DocumentListEntry res = ss.insert(new URL("https://docs.google.com/feeds/default/private/full/"), newEntry);

由于GData lib正在抽象我的网络调用,我假设我不需要自己设置Content-Length,这导致我相信我只是没有正确使用lib。

我错过了什么?感谢。

1 个答案:

答案 0 :(得分:1)

不应在元数据中设置文件内容,而是使用HTTP多部分请求沿元数据发送文件内容。 客户端库负责这样做,您可以使用以下方式设置内容:

newEntry.setFile(/* java.io.File instance */ file, /* MIME type */ "text/csv");

这需要从文件加载数据,但您可以使用流从内存加载。 Java客户端库项目页面中的更详细示例可以是found