com.google.api.client.googleapis.json.GoogleJsonResponseException:400错误请求来自com.google.api.cli.client上的com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:146) . go.comapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)位于com.google.api.client的com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40) . go.comapis.services.AbstractGoogleClientRequest $ 1.interceptResponse(AbstractGoogleClientRequest.java:321)位于com.google.api.client.google客户网站上的com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1065) .executeUnparsed(AbstractGoogleClientRequest.java:419)位于com.google.api.client.google上,com.google.api.client.google客户网站上的com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352) . eClientRequest.execute(AbstractGoogleClientRequest.java:469)org.gradle.GradleTest.insertMessage(GradleTest.java:132)atg.gradle.GradleTest.main(GradleTest.java:173)
仅当我们尝试插入具有大附件(超过5mb)的邮件时才会发生此异常 .
如果附件较小,则邮件正确插入 .
要插入邮件,我试过:
File file = new File(email);
FileInputStream fis = new FileInputStream(file);
long fileSize = file.length();
byte[] buf = new byte[(int)fileSize];
int readNum = fis.read(buf);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write(buf);
String encodedEmail = Base64.encodeBase64URLSafeString(baos.toByteArray());
Message message = new Message();
message.setRaw(encodedEmail);
message = service.users().messages().insert(userId, message).execute();
请建议插入附件超过5mb的邮件的解决方案 .
1 回答
Gmail API documentation说:
由于您要发送> 5 MB的数据,请使用multipart或resumable选项 . multipart的示例:(也取自文档):