无法阅读mailgun api事件数据

时间:2016-02-25 07:08:10

标签: 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": ""
  },
  .
  .
  .
  .
}

我在网上搜索解决方案,但无法获得正确的解决方案。

请帮助解决这个问题。

提前谢谢。

2 个答案:

答案 0 :(得分:2)

是的,解决方案实际上是我在控制台中打印响应,如果在java中打印对象,则调用string方法。这就是我的输出

的原因
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());

希望这也有助于其他人。

答案 1 :(得分:1)

从mailgun System.out.println("Result -->"+clientResponse.getEntity(String.class)); 获取JSON响应太容易了回答很长,只是一行代码,但感谢您的回答。

Result -->{
  "campaign": {
    "bounced_count": 0,
    "clicked_count": 0,
    "complained_count": 0,
    "created_at": "Wed, 12 Oct 2016 11:18:56 GMT",
    "delivered_count": 0,
    "dropped_count": 0,
    "id": "my_campaign_id",
    "name": "Newsletter",
    "opened_count": 0,
    "submitted_count": 0,
    "unsubscribed_count": 0
  },
  "message": "Campaign created"
}

<强>输出

ReentrantLock

注意:当我创建广告系列的时间超过JSON返回时。