使用他们的网络服务通过城市飞艇发送推送(java)

时间:2012-01-18 10:21:13

标签: push urbanairship.com

我已经完成了post

代码对我来说很好。我需要使用java来做这个,我尝试使用HttpURLConnection和javax.xml.rpc.Service但没有运气。

我需要知道如何使用java进行实现。

1 个答案:

答案 0 :(得分:1)

解决了它。

pushClient类:

public static void main(String[] args)
{
    try
    {
        String responseString = "";
        String outputString = "";
        String username = "Application Key";
        String password = "Application secret";
        Authenticator.setDefault(new MyAuthenticator(username,password));

        URL url = new URL("https://go.urbanairship.com/api/push/");
        URLConnection urlConnection = url.openConnection();
        HttpURLConnection httpConn = (HttpURLConnection)urlConnection;
        ByteArrayOutputStream bout = new ByteArrayOutputStream();

        String postdata = "{\"android\": {\"alert\": \"Hello from JAVA!\"}, \"apids\": [\"APID\"]}";
        byte[] buffer = new byte[postdata.length()];
        buffer = postdata.getBytes("UTF8");

        bout.write(buffer);
        byte[] b = bout.toByteArray();
        httpConn.setRequestProperty("Content-Length",String.valueOf(b.length));

        httpConn.setRequestProperty("Content-Type", "application/json");
        httpConn.setRequestMethod("POST");

        httpConn.setDoOutput(true);
        httpConn.setDoInput(true);

        OutputStream out = httpConn.getOutputStream();
        out.write(b);
        out.close();

        InputStreamReader isr = new InputStreamReader(httpConn.getInputStream());
        BufferedReader in = new BufferedReader(isr);

        while ((responseString = in.readLine()) != null) 
        {
            outputString = outputString + responseString;
        }
        System.out.println(outputString);

    }
    catch (MalformedURLException e) 
    {
        e.printStackTrace();
    }
    catch (IOException e1) 
    {
        e1.printStackTrace();
    }
}

MyAuthenticator类:

    private String user;
    private String passwd;

    public MyAuthenticator(String user, String passwd)
    {
        this.user = user;
        this.passwd = passwd;
    }

    protected PasswordAuthentication getPasswordAuthentication()
    {
        return new PasswordAuthentication(user, passwd.toCharArray());
    }