我目前使用Gmail API一次发送多封电子邮件。我按顺序做这个:
我正在阅读有关批量sendEmail API请求的内容,以便我们调用API并处理响应。 虽然我可以批量处理我的所有请求并发送,
我不确定如何处理回复。如果我在批处理请求中有30个发送电子邮件请求,当收到批处理的响应时,我如何确定哪个响应是针对哪个电子邮件?
这是我的实施
BatchRequest batch = gmailService.batch();
gmailService.users().messages().send("me", message).queue(batch, callback);
batch.execute();
final List<Message> messages = new ArrayList<Message>();
JsonBatchCallback<Message> callback = new JsonBatchCallback<Message>() {
public void onSuccess(Message message, HttpHeaders responseHeaders) {
System.out.println("MessageThreadID:"+ message.getThreadId());
System.out.println("MessageID:"+ message.getId());
synchronized (messages) {
messages.add(message);
}
}
@Override
public void onFailure(GoogleJsonError e, HttpHeaders responseHeaders)
throws IOException {
}
};
答案 0 :(得分:1)
我不确定如何处理回复。如果我在批处理请求中有30个发送电子邮件请求,当收到批处理的响应时,我如何确定哪个响应是针对哪个电子邮件?
根据此Batch Request Response文件:
对批量请求的响应
服务器的响应是带有的一个标准HTTP响应 多部分/混合内容类型;每个部分都是对其中一个的回应 批量请求中的请求,与请求的顺序相同。
与请求中的部分一样,每个响应部分都包含一个完整的部分 HTTP响应,包括状态代码,标头和正文。而且喜欢 请求中的部分,每个响应部分前面都有一个 Content-Type标头,用于标记零件的开头。
您可以按照发出请求的顺序获取完整的HTTP响应,其状态代码,标题和正文。因此响应1是第一个请求,响应2是第二个请求,依此类推。通过这种方式,您可以找出电子邮件的响应。