java - 无法读取 mailgun api 事件数据

标签 java jersey mailgun

您好,我最近使用 mailgun api 发送邮件。 我可以发送邮件,但我需要知道我的每封邮件是否已发送。

所以我搜索提供送达报告的 mailgun api。我找到了事件 api。

我阅读了所有文档,但无法像文档中提到的那样得到正确的回复。

我的代码工作正常,但无法获得响应。

这是我的代码。

public static ClientResponse GetLogs() {
    Client client = new Client();
    client.addFilter(new HTTPBasicAuthFilter("api","YOUR_API_KEY"));
    WebResource webResource =client.resource("https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/events");
    MultivaluedMapImpl queryParams = new MultivaluedMapImpl();
    queryParams.add("event", "rejected OR failed");
    return webResource.queryParams(queryParams).get(ClientResponse.class);
}

我收到了回复

GET https://api.mailgun.net/v3/sandboxcf4a9eb67b97489ab540dcc0e865cb0d.mailgun.org/events?event=delivered returned a response status of 200 OK

根据 mailgun 的文档应该是这样的

{
  "items": [
  {
  "severity": "temporary",
  "tags": [],
  "envelope": {
    "sender": "me@samples.mailgun.org",
    "transport": ""
  },
  .
  .
  .
  .
}

我在网上搜索解决方案,但找不到合适的解决方案。

请帮忙解决这个问题。

提前致谢。

最佳答案

是的,我得到了解决方案,实际上我在控制台中打印响应,如果在 java 中打印对象,它会调用字符串方法。这就是为什么我的输出是

ET https://api.mailgun.net/v3/sandboxcf4a9eb67b97489ab540dcc0e865cb0d.mailgun.org/events?event=delivered returned a response status of 200 OK

我应该读取输入流并将其解析为 json 对象。

现在我从 mailgun 得到了预期的响应。

我知道在 java 中使用 json web 服务,这就是我遇到麻烦的原因。

解析响应的代码是....

JSONObject jsonObject = null;
    InputStream inputSrem = clientResponse.getEntityInputStream();
    BufferedReader streamReader = new BufferedReader(new InputStreamReader(inputSrem, "UTF-8"));
    StringBuilder responseStrBuilder = new StringBuilder();

       String inputStr;

       while ((inputStr = streamReader.readLine()) != null)
           responseStrBuilder.append(inputStr);

       jsonObject = new JSONObject(responseStrBuilder.toString());

希望对其他人也有帮助。

关于java - 无法读取 mailgun api 事件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35620589/

相关文章:

java - 如何停止 EJBException 的堆栈跟踪(在每个抛出的异常中)

ios - 使用 Parse Server 设置密码重置时出错

email - 发送回复中引用的原始电子邮件的最佳方法是什么?

node.js - 如何使用 Node.js 和 Request 库将文件附加到 Mailgun 的 API 的 POST 请求

java - 转换 Activity 屏幕时避免空白屏幕

java - 我怎样才能减少这段代码的执行时间

java - 如何生成带有列表的选项卡

java - JFrame 之间的交互

jersey - DropWizard Bootstrap vs 配置 vs 环境

angularjs - [Angular, Jersey]为什么我必须使用 jersey 在 $http 中指定应用程序名称