我正在尝试使用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。
我错过了什么?感谢。
答案 0 :(得分:1)
不应在元数据中设置文件内容,而是使用HTTP多部分请求沿元数据发送文件内容。 客户端库负责这样做,您可以使用以下方式设置内容:
newEntry.setFile(/* java.io.File instance */ file, /* MIME type */ "text/csv");
这需要从文件加载数据,但您可以使用流从内存加载。 Java客户端库项目页面中的更详细示例可以是found。