从 java 访问推送机器人 REST Api
Access the pushbots REST Api from java
我正在尝试使用推送机器人发送推送通知。当我使用 cURL 时它工作正常,但我如何从我的 java 服务器实现它?
我要发送的 curl 脚本是这样的:
curl -X POST \
-H "x-pushbots-appid: 54cc0a511d0ab13c0528b459d" \
-H "x-pushbots-secret: 1444fe8be3324ff7128f25aa18cdee12" \
-H "Content-Type: application/json" \
-d '{"platform" : 1 , "msg" : "hi from Api" , "payload" : {"largeIcon":"https://lh3.googleusercontent.com/-2bMJQbKLNRQ/AAAAAAAAAAI/AAAAAAAA_nc/SYnugOyXboE/s120-c/photo.jpga" }}' \
https://api.pushbots.com/push/all
使用 Runtime.getRuntime().exec("");
不是一个选项,因为我必须响应它,这意味着我希望能够更改 msg
json 值。我怎样才能做到这一点?
感谢您的宝贵时间,
芬奇
似乎您所要做的只是 HTTP 请求。当然,您可以使用 Java 实现此目的,而从 Java 调用 curl
并不是实现此目的的好方法。最好的方法是使用一些库来处理 HTTP。例如,您可以使用 Apache HttpClient which is pretty good. You can learn how to use this library here(不要害怕文档的大小,您只需要基本功能)。
P.S。如果我理解正确的话,Android
标签在这里不合适。
UPD
这是您的案例的一些代码(我没有测试它,但希望它能帮助您):
HttpClient client = HttpClients.createDefault();
HttpPost request = new HttpPost("https://api.pushbots.com/push/all");
request.addHeader("x-pushbots-appid", "54cc...");
request.addHeader("x-pushbots-secret", "1444...");
request.addHeader("Content-Type", "application/json");
request.setEntity(new StringEntity("{your request body here}"));
HttpResponse response = client.execute(request);
int statusCode = response.getStatusLine().getStatusCode();
String responseBody = EntityUtils.toString(response.getEntity());
您还需要捕获一些异常(不在此代码中)- IOException
、UnsupportedEncodingException
。
我正在尝试使用推送机器人发送推送通知。当我使用 cURL 时它工作正常,但我如何从我的 java 服务器实现它? 我要发送的 curl 脚本是这样的:
curl -X POST \
-H "x-pushbots-appid: 54cc0a511d0ab13c0528b459d" \
-H "x-pushbots-secret: 1444fe8be3324ff7128f25aa18cdee12" \
-H "Content-Type: application/json" \
-d '{"platform" : 1 , "msg" : "hi from Api" , "payload" : {"largeIcon":"https://lh3.googleusercontent.com/-2bMJQbKLNRQ/AAAAAAAAAAI/AAAAAAAA_nc/SYnugOyXboE/s120-c/photo.jpga" }}' \
https://api.pushbots.com/push/all
使用 Runtime.getRuntime().exec("");
不是一个选项,因为我必须响应它,这意味着我希望能够更改 msg
json 值。我怎样才能做到这一点?
感谢您的宝贵时间, 芬奇
似乎您所要做的只是 HTTP 请求。当然,您可以使用 Java 实现此目的,而从 Java 调用 curl
并不是实现此目的的好方法。最好的方法是使用一些库来处理 HTTP。例如,您可以使用 Apache HttpClient which is pretty good. You can learn how to use this library here(不要害怕文档的大小,您只需要基本功能)。
P.S。如果我理解正确的话,Android
标签在这里不合适。
UPD 这是您的案例的一些代码(我没有测试它,但希望它能帮助您):
HttpClient client = HttpClients.createDefault();
HttpPost request = new HttpPost("https://api.pushbots.com/push/all");
request.addHeader("x-pushbots-appid", "54cc...");
request.addHeader("x-pushbots-secret", "1444...");
request.addHeader("Content-Type", "application/json");
request.setEntity(new StringEntity("{your request body here}"));
HttpResponse response = client.execute(request);
int statusCode = response.getStatusLine().getStatusCode();
String responseBody = EntityUtils.toString(response.getEntity());
您还需要捕获一些异常(不在此代码中)- IOException
、UnsupportedEncodingException
。