【问题标题】:uploading csv with gdata - Content-Length error使用 gdata 上传 csv - 内容长度错误
【发布时间】:2011-05-16 11:08:42
【问题描述】:

我正在尝试使用 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,这让我相信我根本没有正确使用该库。

我错过了什么?谢谢。

【问题讨论】:

  • 我不确定 GData - 不需要在文件/内容的末尾添加\n,对吧?我会怀疑 TextConstruct 类是这里的问题..

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2014-04-20
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    相关资源
    最近更新 更多