GMAIL API 历史端点仅在 Android 上返回 404 not found 响应代码
Posted
技术标签:
【中文标题】GMAIL API 历史端点仅在 Android 上返回 404 not found 响应代码【英文标题】:GMAIL API history endpoint returns a 404 not found response code only on Android 【发布时间】:2020-07-15 03:14:35 【问题描述】:我正在尝试使用 historyId 对历史端点进行 GMAIL API 调用。这个调用适用于 Postman,我应该收到一个 json 响应。但是当我尝试在 android Studio 中实现相同的功能时,它会返回 404 Not Found 错误。谁能帮我解决这个问题?
URL urlHist = new URL("https://www.googleapis.com/gmail/v1/users/me/history?startHistoryId="+historyId);
HttpURLConnection connHist = (HttpURLConnection) urlHist.openConnection();
connHist.setRequestProperty("Authorization",token);
connHist.setRequestMethod("GET");
connHist.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
connHist.setRequestProperty("Accept","application/json");
connHist.setDoOutput(true);
connHist.setDoInput(true);
DataOutputStream os = new DataOutputStream(connHist.getOutputStream());
os.flush();
os.close();
【问题讨论】:
【参考方案1】:您应该使用 Gmail API 来构建您的请求。 Here 您可以找到有关如何开始使用 Java 的示例。你的请求应该翻译成这样:
private static final String APPLICATION_NAME = "Your Android APP name";
private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
//...
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
Gmail service = new Gmail.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
.setApplicationName(APPLICATION_NAME)
.build();
ListHistoryResponse history = service.users().history().list("me").setStartHistoryId(historyId).execute();
【讨论】:
以上是关于GMAIL API 历史端点仅在 Android 上返回 404 not found 响应代码的主要内容,如果未能解决你的问题,请参考以下文章
使用先前存储在数据库中的凭据执行发送电子邮件的 API 端点。 (使用 Gmail REST API)
如何在客户端中使用 Firebase Auth gmail 保护 NestJS 中的 API?