如何从Java Restful服务器向GCM服务器发送消息

伊曼纽尔·古瑟(Emmanuel Guther)

我有一个Java Restful Web服务(1)和一个使用它的Android应用程序(2)。第三个应用程序负责通过Web服务将数据输入数据库。我希望当第三个应用程序在我的数据库中输入新数据时,Web服务通过GCM通知android应用程序。我的Android应用程序能够接收reg-Id GCM。(我已经在Google Developers等服务器API密钥中创建了项目。)

我尝试了这一点:当第三个应用访问URI以通过POST输入数据时,将消息发送到google服务器。不起作用

@POST
@Override
@Consumes({"application/xml", "application/json"})
public void create(Usuarios entity) {
 String deviceId=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...;

Sender sender = new Sender("AIzaSyXXXXXXXXXXXXXXXXXXXXXXXXXXX");
 Message message = new Message.Builder()
.addData("message", "this is the message")
.addData("other-parameter", "some value")
.build();

  Result result = sender.send(message, deviceId, 3);

    super.create(entity);
}

我也曾尝试创建一个servlet。但是不起作用

@WebServlet(name = "NewServlet_1", urlPatterns = {"/NewServlet_1"})
public class NewServlet extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    try (PrintWriter out = response.getWriter()) {

        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet NewServlet</title>");            
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Servlet NewServlet at " + request.getContextPath() + "</h1>");
        out.println("</body>");
        out.println("</html>");
    }
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {    
    processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
   Sender sender = new Sender("AIzaSyBNFur3sFJpMujkVYW9rzEq3udI0khRCOI");
 Message message = new Message.Builder()
.addData("message", "this is the message")
.addData("other-parameter", "some value")
.build();
  Result result = sender.send(message, "xxxxxxxxxxxx", 3);

    processRequest(request, response);
}

@Override
public String getServletInfo() {
    return "Short description";
}// </editor-fold>

}

一些想法?

尼尔玛·达拉(Nirmal dhara)

可能是您已经解决了问题。但这对其他人有帮助,所以我发布了答案。

选择任何休息客户(球衣休息客户)或常规的HTTP URL帖子。

将请求发布到https://android.googleapis.com/gcm/发送网址

将两个变量设置为http标头

授权:key = YOUR_API_KEY内容类型:application / json

有效负载json应该如下所示。

 {
      "registration_ids" : ["APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx..."],
      "data" : {
        ///your data goes here 
      },
    }

例子

  { "data": {
        "score": "5x1",
        "time": "15:10"
      },
      "registration_ids": ["4", "8", "15", "16", "23", "42"]
    }

注意-registration_ids是设备注册ID。

现在发布到其余部分。

有关更多信息,请检查

样例代码

包com.ajs.ajstest.gcmpost;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;

/ ** * * @author nirmal * /公共课程GCMPost {

public static void main(String ar[]) throws UnsupportedEncodingException, IOException{
HttpClient httpclient = new DefaultHttpClient();

    String json="{ \"data\": {" +
                "    \"score\": \"5x1\"," +
                "    \"time\": \"15:10\"" +
                "  }," +
                "  \"registration_ids\": [\"4\", \"8\", \"15\", \"16\", \"23\", \"42\"]" +
                "}";
    HttpPost httpost = new HttpPost("https://android.googleapis.com/gcm/send");
httpost.setHeader("Content-Type", "application/json");
httpost.setHeader("Authorization","YOUR_API_KEY");

httpost.setEntity(new StringEntity(json));
HttpResponse response = httpclient.execute(httpost);
}

}

行家依赖

<dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpclient</artifactId>
  <version>4.3.6</version>
  <type>jar</type>
 </dependency>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Java从服务器向Facebook帐户发送消息

来自分类Dev

如何从我的服务器向另一台服务器发送消息?

来自分类Dev

如何使用Java RMI从服务器向客户端发送消息?

来自分类Dev

如何从 Python 服务器向 Java 客户端发送消息

来自分类Dev

我应该如何在 Java 上部署 XMPP 服务器 GCM 以便 GCM 可以访问它并发送消息?

来自分类Dev

GCM连接服务器如何将消息发送到Android设备?

来自分类Dev

使用Java Websockets客户端向服务器发送多条消息?

来自分类Dev

从Android客户端向Java服务器发送消息

来自分类Dev

如何理解客户端在服务器中向哪个路由发送了Websocket消息?

来自分类Dev

Spring Integration和TCP服务器套接字-如何向客户端发送消息?

来自分类Dev

如何使服务器在单击按钮时向客户端发送消息

来自分类Dev

Python flask服务器,如何向另一个请求的线程发送消息?

来自分类Dev

如何从服务器向客户端发送消息(TCP,Android应用程序)

来自分类Dev

如何使我的Discord Bot向服务器发送更干净的消息

来自分类Dev

如何告诉Windows Mail向邮件服务器发送“已读邮件”消息?

来自分类Dev

Python flask服务器,如何向另一个请求的线程发送消息?

来自分类Dev

如何知道哪个客户端正在向服务器发送消息

来自分类Dev

如何使用端口从服务器向客户端发送消息?

来自分类Dev

如何从Qt中的服务器向连接的客户端发送消息

来自分类Dev

服务器如何发送消息 SSE 在多个服务器实例环境中工作

来自分类Dev

如何从Android向PHP服务器发送数据

来自分类Dev

如何规范向服务器发送请求?

来自分类Dev

如何向服务器发送请求并获取数据

来自分类Dev

如何向服务器发送关机命令

来自分类Dev

如何获取从服务器发送到Android的消息

来自分类Dev

如何使用Java中的套接字从服务器向特定客户端发送字符串消息?

来自分类Dev

java中的XMPP服务器没有收到来自GCM服务器的所有消息

来自分类Dev

如何使用InstanceID从服务器端发送通知?-具有.NET服务器的GCM

来自分类Dev

GCM:如何将心跳发送到GCM服务器

Related 相关文章

  1. 1

    使用Java从服务器向Facebook帐户发送消息

  2. 2

    如何从我的服务器向另一台服务器发送消息?

  3. 3

    如何使用Java RMI从服务器向客户端发送消息?

  4. 4

    如何从 Python 服务器向 Java 客户端发送消息

  5. 5

    我应该如何在 Java 上部署 XMPP 服务器 GCM 以便 GCM 可以访问它并发送消息?

  6. 6

    GCM连接服务器如何将消息发送到Android设备?

  7. 7

    使用Java Websockets客户端向服务器发送多条消息?

  8. 8

    从Android客户端向Java服务器发送消息

  9. 9

    如何理解客户端在服务器中向哪个路由发送了Websocket消息?

  10. 10

    Spring Integration和TCP服务器套接字-如何向客户端发送消息?

  11. 11

    如何使服务器在单击按钮时向客户端发送消息

  12. 12

    Python flask服务器,如何向另一个请求的线程发送消息?

  13. 13

    如何从服务器向客户端发送消息(TCP,Android应用程序)

  14. 14

    如何使我的Discord Bot向服务器发送更干净的消息

  15. 15

    如何告诉Windows Mail向邮件服务器发送“已读邮件”消息?

  16. 16

    Python flask服务器,如何向另一个请求的线程发送消息?

  17. 17

    如何知道哪个客户端正在向服务器发送消息

  18. 18

    如何使用端口从服务器向客户端发送消息?

  19. 19

    如何从Qt中的服务器向连接的客户端发送消息

  20. 20

    服务器如何发送消息 SSE 在多个服务器实例环境中工作

  21. 21

    如何从Android向PHP服务器发送数据

  22. 22

    如何规范向服务器发送请求?

  23. 23

    如何向服务器发送请求并获取数据

  24. 24

    如何向服务器发送关机命令

  25. 25

    如何获取从服务器发送到Android的消息

  26. 26

    如何使用Java中的套接字从服务器向特定客户端发送字符串消息?

  27. 27

    java中的XMPP服务器没有收到来自GCM服务器的所有消息

  28. 28

    如何使用InstanceID从服务器端发送通知?-具有.NET服务器的GCM

  29. 29

    GCM:如何将心跳发送到GCM服务器

热门标签

归档