GMAIL API历史记录端点仅在Android上返回未找到的404响应代码

时间:2020-04-03 01:09:01

标签: android gmail-api

我正在尝试使用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 个答案:

答案 0 :(得分:0)

您应该使用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();