Я отображаю заголовки gmail, такие как FROM, SUBJECT и DATE, в моем веб-приложении (10 писем на страницу).
Но в соответствии с API gmail сначала нам нужно вызвать messeses.list , чтобы сначала получить список идентификаторов сообщений, а затем вызвать message.get для каждого из них. идентификаторы, чтобы получить фактические заголовки.
Итак, для первого шага мой код такой,
String link = "https://www.googleapis.com/gmail/v1/users/" + fromMail + "/messages/?labelIds=" + mailFolder + "&maxResults=10";
//Making oauth request to get message id's
JSONObject respObj = GmailUtil.requestGetUrl(link, access_token);
if (respObj.has("messages")) msgArray = respObj.getJSONArray("messages");
if (!respObj.has("nextPageToken")) isEmptyCurrentPage = true;
// 2nd step. Iterating through each id's to get the headers.
for (int i = 0; i < msgArray.length(); i++) {
JSONObject jsonObj = msgArray.getJSONObject(i);
String msgId = jsonObj.getString("threadId");
String urlLink = "https://www.googleapis.com/gmail/v1/users/" + fromMail + "/messages/" + msgId + "?labelIds=" + mailFolder + "&format=metadata&metadataHeaders=id&metadataHeaders=subject&metadataHeaders=From&metadataHeaders=Date";
JSONObject msgResult = GmailUtil.requestGetUrl(urlLink, access_token);
JSONObject jObj = new JSONObject();
jObj.put("checkBoxVal", false);
jObj.put("date", getHeader(msgResult, "date") != null ? UtilityClass.mailBoxDateFormatter1.format(new MailDateFormat().parse(getHeader(msgResult, "date"))) : "");
jObj.put("from", getHeader(msgResult, "from"));
jObj.put("fromEmail", UtilityClass.extractEmailIdFromString(getHeader(msgResult, "from")));
jObj.put("messageId", msgId);
}
Теперь этот процесс занимает от 6 до 10 секунд. Как я могу оптимизировать этот исходный код, чтобы выполнить немного быстрее. Спасибо.