本文链接:http://blog.csdn.net/kongxx/article/details/8160493

今天在看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=false

2. 修改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");}@Overridepublic Header getContentType() {Header h = new BasicHeader("Content-Type", "application/json");return h;}}
}

4. 测试,首先运行模拟器,然后运行可以接收message的android native app,最后运行上面的测试类,稍等片刻就会在设备或者模拟器上看到消息了。

Urban Airship Server API - Java客户端实例相关推荐

  1. memcached win64位服务端安装和java客户端实例

    项目开发中需要用到memcached缓存记录下来相关操作方便日后复习,如果有错误或遗漏请留言. memcached服务端安装 下载安装包 下载地址 32位系统 1.4.4版本:http://stati ...

  2. socket java 客户端_Java基于socket实现的客户端和服务端通信功能完整实例

    本文实例讲述了Java基于socket实现的客户端和服务端通信功能.分享给大家供大家参考,具体如下: 以下代码参考马士兵的聊天项目,先运行ChatServer.java实现端口监听,然后再运行Chat ...

  3. Java Websocket实例【服务端与客户端实现全双工通讯】

    Java Websocket实例[服务端与客户端实现全双工通讯] 现很多网站为了实现即时通讯,所用的技术都是轮询(polling).轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发 出HTTP ...

  4. sqoop2 java api实现_Sqoop2 Java客户端API指南

    原文连接:http://sqoop.apache.org/docs/1.99.6/ClientAPI.html Sqoop Java客户端API指南 这篇文章秒描述了额如何在外部应用中使用sqoop ...

  5. ZooKeeper :Java客户端Watcher API介绍

    ZooKeeper :Java客户端Watcher API介绍 在上一篇博客中,博主给大家介绍了Java客户端的Session.ACL以及Znode API: ZooKeeper :Java客户端Se ...

  6. kafka Java客户端之 consumer API 消费消息

    背景:我使用docker-compose 搭建的kafka服务 kafka的简单介绍以及docker-compose部署单主机Kafka集群 使用consumer API消费指定Topic里面的消息 ...

  7. Kafka Java客户端Stream API

    Kafka Stream概念及初识高层架构图 Kafka Stream是Apache Kafka从0.10版本引入的一个新Feature,它提供了对存储于Kafka内的数据进行流式处理和分析的功能.简 ...

  8. java socket 编程 客户机服务器_Java Socket编程服务器响应客户端实例代码

    通过输入流来读取客户端信息,相应的时候通过输出流来实现. 服务端类的代码: import java.io.BufferedReader; import java.io.IOException; imp ...

  9. java服务端代码_Java Socket编程服务器响应客户端实例代码

    通过输入流来读取客户端信息,相应的时候通过输出流来实现. 服务端类的代码: import java.io.BufferedReader; import java.io.IOException; imp ...

最新文章

  1. express组合gulp自动更新代码重启浏览器
  2. UA MATH524 复变函数14 Laurent级数
  3. pandas对象保存到mysql出错提示“BLOB/TEXT column used in key specification without a key length”解决办法
  4. Linux重启网卡的方法
  5. 隐写术写在简历上面_隐写术用纯英语解释
  6. 什么是 Linux 中的显示管理器?
  7. 【scratch高阶案例教学】scratch斐波那契数列 scratch创意编程 少儿编程 小朋友们也可以完成如此神奇的数列
  8. 贪吃蛇c加加代码_C语言/C加加编程学习之贪吃蛇小游戏源代码
  9. 86版五笔字根表(JPG版)
  10. 算命师傅的好帮手:一款简单好用又使用的排盘工具--灵棋排盘
  11. QT error: undefined reference to `__imp__ZN12QSqlDatabase7driversEv‘报错
  12. 如何提取PDF页面?3种拆分PDF的方法
  13. 360浏览器默认使用IE兼容模式解决办法
  14. Matlab如何调用外部函数/工具包,如何将新函数加到默认函数库中
  15. 自然语言处理入门学习笔记3:词向量
  16. C++ - STL标准库
  17. 打印设置自定义表尾_教大家Excel2013表格中如何打印固定的表头和表尾
  18. 华为机试真题 C 实现【非严格递增连续数字序列】【2022 Q4新题】
  19. 微信小程序 Picker-view背景透明设置
  20. 丰泽区python培训机构

热门文章

  1. 2015淘宝最新排名新规则
  2. 【luogu P7473】重力球
  3. 什么是 去中心化自治组织(DAO)
  4. QuickMark: ElasticSearch curl command
  5. 荣耀30s是否搭载鸿蒙系统,荣耀30S来袭 3月30日发布或配麒麟820芯片
  6. 【分享】QY-IMX8M主板简介
  7. 【来灌灌水】~~感谢csdn平台给予新手学习的地方
  8. Oracle 表解锁
  9. 占书明:outlook发邮件时提示“出现意外错误”的原因及解决办法!
  10. csv用excel打开数据都在第一列解决办法