我尝试按照以下原则申请 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? (如果这是错误?
感谢。