1

我正在尝试使用来自 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 库正在从我那里抽象网络调用,我假设我不需要自己设置 Content-Length,这让我相信我根本没有正确使用该库。

我错过了什么?谢谢。

4

1 回答 1

1

文件的内容不应在元数据中设置,而是使用 HTTP 多部分请求与元数据一起发送。客户端库负责执行此操作,您可以使用以下方式设置内容:

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

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

于 2012-04-13T18:21:41.247 回答