使用Gmail API进行可恢复下载

时间:2015-10-30 12:42:23

标签: gmail-api google-api-java-client

我尝试按照以下原则申请 resumable donload with gmail API ,收到消息:https://google-developers.appspot.com/api-client-library/java/google-api-java-client/media-download [1]

但是,我没有找到一种使用MediaHttpDownloader获取消息的方法,与插入方法消息类似,有一个方法是使用MediaHttpUploader:

所以,我试图在没有特定于服务的生成库的情况下获取消息,遵循Drive [1]的这个示例。

而不是使用:

DriveFiles.Get request = drive.files().get(fileId);
request.getMediaHttpDownloader().setProgressListener(new        CustomProgressListener());
request.executeMediaAndDownloadTo(out);

在驱动器中,您必须使用:

MediaHttpDownloader downloader = new MediaHttpDownloader(transport, httpRequestInitializer);
downloader.setProgressListener(new CustomProgressListener());
downloader.download(requestUrl, out);

在Gmail API get message方法中,请求网址为:https://www.googleapis.com/gmail/v1/users/me/messages/ {ID_MESSAGE}?format = raw& key = {YOUR_API_KEY}

我从Google Credential方法获取YOUR_API_KEY,getAccessToken()。

我尝试使用此代码,但我认为我的OutputStream存在问题

ByteArrayOutputStream out = new ByteArrayOutputStream();
HttpTransport transportHttp = new UrlFetchTransport();
String request = "https://www.googleapis.com/gmail/v1/users/me/messages/"+idMensaje+"?format=raw&fields=raw&key="+key;
GenericUrl genericURL = new GenericUrl(request);


        MediaHttpDownloader downloader = new MediaHttpDownloader(transportHttp, serviceUserGmail.getRequestFactory().getInitializer());
        downloader.setDirectDownloadEnabled(false);
        downloader.setChunkSize(1024 * 1024);
        downloader.download(genericURL, out);

我收到此错误:

com.google.api.client.http.HttpResponseException:400 不支持的输出格式     在com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1054)     在com.google.api.client.googleapis.media.MediaHttpDownloader.executeCurrentRequest(MediaHttpDownloader.java:245)     在com.google.api.client.googleapis.media.MediaHttpDownloader.download(MediaHttpDownloader.java:199)     在com.google.api.client.googleapis.media.MediaHttpDownloader.download(MediaHttpDownloader.java:156)

我必须如何定义outputStream? (如果这是错误?

感谢。

0 个答案:

没有答案