我正在开发一款Android应用程序,该应用程序使用gdata-java-client下载文档以供显示。到目前为止,我有一个应用程序,它使用服务进行身份验证并显示用户文档列表。当用户选择文档时,对文档本身进行另一个查询。对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
提前感谢您的任何帮助:)
答案 0 :(得分:5)
我还没有看到您的代码,但大多数问题是您正在使用ClientLogin,并使用“writely”服务对Documents List API进行身份验证。但是,由于导出电子表格会触及spreadsheets.google.com,因此您需要使用ClientLogin对“明智”服务进行身份验证。从Java开始,这意味着使用Spreadsheets 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实例。
祝你好运:)答案 1 :(得分:1)
我对文档列表API不太熟悉,但是根据您的描述,听起来您可能在文档列表API中遇到了一个错误,这听起来像是一个需要修复的重要问题。
请在文档列表API论坛上报告您的问题,以增加知识渊博的人能够调查此问题的机会:
http://www.google.com/support/forum/p/apps-apis/label?lid=5c316c702e844c99&hl=en
答案 2 :(得分:0)
这是2017年,现在有一种全新的做事方式。 GData,GData API(如Documents List API,ClientLogin和Drive下载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。