使用java从IIS向GCM发送http请求

时间:2015-03-15 22:51:38

标签: java json iis google-cloud-messaging

我正在尝试从我的[java应用程序服务器]向[GCM]发送Json消息: 位于IIS服务器上的Java服务器应用程序(Windows Server 2008 R2)。 这是我的功能:

public static String post(String apiKey, String json){

        try{

       URL url = new URL("https://android.googleapis.com/gcm/send");

       HttpURLConnection conn = (HttpURLConnection) url.openConnection();
       conn.setRequestMethod("POST");
        conn.setRequestProperty("Content-Type:", "application/json");
        conn.setRequestProperty("Authorization:", "key="+apiKey); // apiKey is valid browser apiKey.
        conn.setDoOutput(true);

        DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
              wr.writeUTF(json);
            wr.flush();
            wr.close();
 /*I've deleted the respond check from the question*/
}

但我没有发送!,也没有收到任何消息或异常。

我认为服务器本身不允许我发送http请求! 这是真的?怎么解决?

1 个答案:

答案 0 :(得分:0)

我建议使用Sender和Message对象。示例GCM服务器代码使用这些代码。可以看到示例服务器代码here

如果您真的坚持自己处理连接,可以查看发件人对象here的基础HttpURLConnection实现。

似乎发件人代码与您的请求属性之间存在某些差异。希望这会有所帮助。