阅读谷歌文本文档时出现问题

时间:2011-11-10 18:05:13

标签: gdata-api

我可以获得我需要的谷歌文本文档的句柄。我现在卡在如何阅读内容。 我的代码如下:

            GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();  
            oauthParameters.setOAuthConsumerKey(Constants.CONSUMER_KEY);  
            oauthParameters.setOAuthConsumerSecret(Constants.CONSUMER_SECRET);  
            oauthParameters.setOAuthToken(Constants.ACCESS_TOKEN); 
            oauthParameters.setOAuthTokenSecret(Constants.ACCESS_TOKEN_SECRET);  
            DocsService client = new DocsService("sakshum-YourAppName-v1");  
            client.setOAuthCredentials(oauthParameters, new OAuthHmacSha1Signer());  
            URL feedUrl = new URL("https://docs.google.com/feeds/default/private/full/");  
            DocumentQuery dquery = new DocumentQuery(feedUrl);
            dquery.setTitleQuery("blood_donor_verification_template_dev");
            dquery.setTitleExact(true);
            dquery.setMaxResults(10);
            DocumentListFeed resultFeed = client.getFeed(dquery, DocumentListFeed.class);
            System.out.println("feed size:" + resultFeed.getEntries().size());
            String emailBody = "";
            for (DocumentListEntry entry : resultFeed.getEntries()) {  

                System.out.println(entry.getPlainTextContent()); 
                emailBody = entry.getPlainTextContent();
            }  

请注意,entry.getPlainTextContent()不起作用并且抛出对象而不是TextContent类型异常

1 个答案:

答案 0 :(得分:0)

最后我解决了它:

for (DocumentListEntry entry : resultFeed.getEntries()) {  
                String docId = entry.getDocId();
                String docType = entry.getType();
                URL exportUrl =
                              new URL("https://docs.google.com/feeds/download/" + docType
                                  + "s/Export?docID=" + docId + "&exportFormat=html");
                MediaContent mc = new MediaContent();
                mc.setUri(exportUrl.toString());

                MediaSource ms = client.getMedia(mc);
                InputStream inStream = null;
                try {
                    inStream = ms.getInputStream();
                    int c;
                    while ((c = inStream.read()) != -1) {
                        emailBody.append((char)c);
                    }
                  } finally {
                    if (inStream != null) {
                      inStream.close();
                    }
                  }                 
            }