5

我正在开发一个使用 gdata-java-client 下载文档仅用于显示的 Android 应用程序。到目前为止,我有一个通过服务进行身份验证并显示用户文档列表的应用程序。当用户选择一个文档时,会对文档本身进行另一个查询。对 txt、html、rtf 和 doc 文件的请求运行良好,但是当我请求 .csv 或 .xsl 格式的电子表格时,结果出乎意料。

我正在使用 HTTPResponse 对象来存储 HTTPRequest 的结果。当我请求 .csv 或 .xsl 格式的文档时,HTTPResponse.parseAsString() 方法会生成一个完整的 html 页面,该页面似乎是 Google Docs 主页。听起来很奇怪,但结果是登录页面的实际 html。HTTPResponse.getStatusMessage 返回 200。

好像我在这里遗漏了一些简单的东西。HTTPResponse 的另一个属性是否包含 .csv 数据?

我很确定我使用正确的 uri 下载电子表格,因为它在我通过浏览器下载时有效。无论如何,这里是一个示例 uri:

https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=0AsE_6_YIr797dHBTUWlHMUFXeTV4ZzJlUGxWRnJXanc&exportFormat=csv

在此先感谢您的帮助:)

4

3 回答 3

5

我还没有看到您的代码,但最肯定的问题是您使用的是 ClientLogin,并且使用“writely”服务对 Documents List API 进行了身份验证。但是,由于导出电子表格会访问电子表格.google.com,因此您需要使用 ClientLogin 对“明智”服务进行身份验证。从 Java 中,这意味着使用电子表格 Java 客户端库,此处记录了该库: http ://code.google.com/apis/documents/docs/3.0/developers_guide_java.html#DownloadingSpreadsheets

请注意顶部 标记为“重要”的注释,链接到此处: http ://code.google.com/apis/documents/docs/3.0/developers_guide_java.html#DownloadingSpreadsheetsClientLogin

在该链接中,详细介绍了使用 SpreadsheetClient 实例。

祝你好运 :)

于 2010-05-30T03:41:16.140 回答
1

我对 Documents List API 不够熟悉,无法知道,但从您的描述看来,您可能在 Documents List API 中遇到了一个错误,在我看来这是一个需要修复的重要问题。

请在 Documents List API 论坛上报告您的问题,以增加知识渊博的人能够调查此问题的机会:

http://www.google.com/support/forum/p/apps-apis/label?lid=5c316c702e844c99&hl=en

于 2010-05-16T20:03:13.263 回答
0

现在是 2017 年,现在有一种全新的做事方式。GData、文档列表 API、ClientLogin 和 Drive 下载 URL 等 GData API 现在都已过时。取而代之的是 Drive API、Sheets API,以及一种更原生的与 Android 应用程序中的 Google 技术集成的方式:适用于 Android 的Google API 客户端库。如果您正在做服务器端,还有一个用于 Java 的 Google API 客户端库。

如果您想在电子表格上执行面向文档的操作,您可以使用Google Sheets API并使用上面的客户端库来执行此操作。现在举一些例子……这里是Android 快速入门代码示例以及更通用的用于 Sheets API 的Java 快速入门代码示例。传递Sheets API 的 JavaDocs 参考也没有什么坏处。最新的 Sheets API 提供了旧版本中不可用的功能,即让开发人员可以像使用用户界面一样以面向文档的编程方式访问工作表(创建冻结行、执行单元格格式设置、调整行/列大小、添加数据透视表、创建图表等)

但是,要执行 文件级访问,例如在 OP 的问题中,您将使用Google Drive API。甚至还有一个适用于 Android 的 Google Drive API,包括一个专门用于检索文档内容的文档页面。如果您是此库的新手,这里是Drive API Android 快速入门示例应用程序以及其他代码示例,可帮助您入门。这里也是适用于 Android 类参考文档的 Drive API

于 2017-03-07T05:37:49.993 回答