Urban Airship Server API - Java客户端实例
2012-11-08 08:15
441 查看
本文链接:/article/1416021.html
今天在看Urban Airship的server端的API,Urban Airship官方网站上推荐了一个第三方的开源库http://bitbucket.org/sullis/urbanairship-java/,但是在经过简单测试后还是发现了一些问题,并且这个库好像也不是很活跃。为了看看Urban Airship的server端API怎么用,自己还是决定自己写个小程序试试看。
今天的测试由于涉及从Urban Airship向Android设备发送消息,所以这里假定已经有Android设备或者模拟器安装了可以接收消息的native app,具体步骤可以参考我的前一篇博客(http://blog.csdn.net/kongxx/article/details/8155916)。
下面开始今天的测试
1. 首先创建一个工程,这里还是使用maven来创建工程
今天在看Urban Airship的server端的API,Urban Airship官方网站上推荐了一个第三方的开源库http://bitbucket.org/sullis/urbanairship-java/,但是在经过简单测试后还是发现了一些问题,并且这个库好像也不是很活跃。为了看看Urban Airship的server端API怎么用,自己还是决定自己写个小程序试试看。
今天的测试由于涉及从Urban Airship向Android设备发送消息,所以这里假定已经有Android设备或者模拟器安装了可以接收消息的native app,具体步骤可以参考我的前一篇博客(http://blog.csdn.net/kongxx/article/details/8155916)。
下面开始今天的测试
1. 首先创建一个工程,这里还是使用maven来创建工程
mvn archetype:generate -DgroupId=urbanairship.server -DartifactId=urbanairship-server -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false2. 修改pom.xml文件如下
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>urbanairship.server</groupId> <artifactId>urbanairship-server</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>urbanairship-server</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.2.1</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> </project>3. 创建一个测试类Test,注意替换其中的username, password和apid。
package urbanairship.server; import java.io.UnsupportedEncodingException; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.StatusLine; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicHeader; import org.apache.http.util.EntityUtils; public class Test { private static Logger logger = Logger.getLogger(Test.class.getName()); private static final String username = "This should be Application Key"; private static final String password = "This should be Application Master Secret"; private static final String apid = "This should be your APID of your android device"; public static void main(String[] args) throws Exception { StringBuffer sb = new StringBuffer(); sb.append("{\"android\": {\"alert\": \"hello world\"}, \"apids\": [\""+apid+"\"]}"); String path = "https://go.urbanairship.com/api/push/"; DefaultHttpClient httpClient = new DefaultHttpClient(); httpClient.getCredentialsProvider().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password)); HttpPost httpPost = new HttpPost(path); httpPost.setHeader("Accept", "application/json"); httpPost.setEntity(new JsonEntity(sb.toString())); logger.log(Level.INFO, "executing request: " + httpPost.getRequestLine()); HttpResponse response = httpClient.execute(httpPost); StatusLine status = response.getStatusLine(); int statusCode = status.getStatusCode(); logger.log(Level.INFO, ""+statusCode); HttpEntity responseEntity = response.getEntity(); logger.log(Level.INFO, EntityUtils.toString(responseEntity)); } static private class JsonEntity extends StringEntity { public JsonEntity(String jsonString) throws UnsupportedEncodingException { super(jsonString, "UTF-8"); } @Override public Header getContentType() { Header h = new BasicHeader("Content-Type", "application/json"); return h; } } }4. 测试,首先运行模拟器,然后运行可以接收message的android native app,最后运行上面的测试类,稍等片刻就会在设备或者模拟器上看到消息了。
相关文章推荐
- IdnentiyServer使用客户端凭据访问API的实例代码
- HBase总结(十二)Java API 与HBase交互实例
- Java分别实现了Server和Client,把Server和Client run起来后,在客户端输入,
- java调用淘宝api实例
- memcached win64位服务端安装和java客户端实例
- RabbitMQ-Java客户端API指南-上
- java 中模拟TCP传输的客户端和服务端实例详解
- Java使用新浪微博API通过账号密码方式登陆微博的实例
- Java调用Weka API分类实例
- 实例讲解分布式缓存软件Memcached的Java客户端使用
- redis集群、单机java客户端API开源框架
- 【华为】Redis客户端API使用(java)
- Java客户端调用.NET的WebService实例
- java 和 C++ Socket通信(java作为服务端server,C++作为客户端client,解决中文乱码问题GBK和UTF8)
- java后台判断客户端是手机/PC并返回不同页面的实例
- ASP.NET Core的身份认证框架IdentityServer4(7)- 使用客户端证书控制API访问
- Java中调用ArcGIS Server REST API
- Java8学习:Lambda表达式、Stream API和功能性接口 — 教程、资源、书籍和实例
- Zookeeper实例Curator API-使用Fluent风格的API接口来创建一个ZooKeeper客户端
- ArcGIS Server JavaScript API+Jsp入门实例(HelloWorld.jsp)