5

我正在使用gdata-java-client下载文档以供显示的Android应用程序。到目前为止,我有一个应用程序与服务进行身份验证,并显示用户文档的列表。当用户选择文档时,对文档本身进行另一个查询。对txt,html,rtf和doc文件的请求效果很好,但是当我以.csv或.xsl格式请求电子表格时,结果是意外的。从Android上的Google Drive下载Google表格电子表格

我使用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 

预先感谢任何帮助:)

+0

如果您不介意,您是否会添加“google-api-java-client”标签? – 2010-09-21 17:16:55

+0

@Jason Hall 我很好奇,你为什么这么编辑原始问题? – JeremyFromEarth 2010-09-21 18:01:51

+0

AFAIK我做的唯一更改是删除“gdata-java-client”并添加“google-api-java-client” - 请参阅http://stackoverflow.com/posts/2813470/revisions – 2010-09-21 19:54:06

回答

5

我还没有看到你的代码,但肯定问题在于您正在使用ClientLogin,并且使用'writely'服务对文档列表API进行了身份验证。但是,由于导出电子表格会触发spreadsheets.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实例。

祝你好运:)

+0

这显示不赞成使用的API。 – Youngjae 2014-04-06 01:57:02

0

这是2017年,现在有一种全新的做事方式。 GData,GData API(如文档列表API,ClientLogin和云端硬盘下载URL)现在都已过时。取而代之的是一个Drive API,一个Sheets API,以及一种更加本地的方式来集成来自Android应用的Google技术:Google APIs Client Library for Android。如果你在做服务器端,也有Google APIs Client Library for Java

如果你想在电子表格进行文件取向的操作,你会使用Google Sheets API和这样做使用上面的客户端库。现在举一些例子...这里是Android quickstart code sample以及Sheets API更通用的Java quickstart code sample。也不能伤害传递JavaDocs reference for the Sheets API。最新的Sheets API提供了旧版本中不可用的功能,即为开发人员提供了对工作表的面向文档的访问,就像您使用用户界面一样(创建冻结行,执行单元格格式化,调整行/列大小,添加数据透视表,创建图表等)

但是,要执行文件级别的访问,例如在OP的问题中,您可以使用Google Drive API。甚至有一个Google Drive API for Android,包括一个docs page specifically on retrieving document contents。如果您不熟悉此库,请参阅Drive API Android quickstart sample app以及other code samples以帮助您入门。这里也是Drive API for Android class reference docs

相关问题