无法读取 mailgun api 事件数据
unable to read mailgun api events data
您好,我最近使用 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 网络服务,这就是我遇到麻烦的原因。
解析响应的代码是....
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());
希望对其他人也有帮助。
从 mailgun 获得 JSON 回复太容易了 @Rahul
答案太长了,只有一行代码,但感谢您的回答。
System.out.println("Result -->"+clientResponse.getEntity(String.class));
输出
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"
}
注意:当我在上面 JSON return.
创建活动时
您好,我最近使用 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 网络服务,这就是我遇到麻烦的原因。
解析响应的代码是....
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());
希望对其他人也有帮助。
从 mailgun 获得 JSON 回复太容易了 @Rahul
答案太长了,只有一行代码,但感谢您的回答。
System.out.println("Result -->"+clientResponse.getEntity(String.class));
输出
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"
}
注意:当我在上面 JSON return.
创建活动时