java servlet手机app访问接口(四)推送
本人开发的开发者技术变现资源聚集地,大家支持下,下面是网址
https://www.baiydu.com
一、 服务端DEMO下载及运行。
登录友盟后,浏览器直接输入下面这个URL,直接进入文档开发和DEMO下载页面:http://dev.umeng.com/push/ios/integration(下面截图)
1、下载DEMO


2、执行上面步骤后将下载下来的JAVA DEMO导入到Ecplise中,运行

这里我使用的是java控制台方式来运行DEMO案例,上面的截图右键点击Demo.java运行,默认是执行android的单个手机推送方法,这里我们可以修改,
因为我测试的是IOS的推送,所以这里在main方法里将运行方法,修改成IOS的单个手机推送方法。下面截图

下面是修改上面调用方法中的部分参数截图

这样修改之后,官方的DEMO你就可以直接 右键 DEMO.JAVA运行了。
返回结果:

记得友盟创建的对应APP的IP一定要修改成服务器的IP,否则会返回IP错误。
二、将推送功能集成到Servlet中
集成这个DEMO我是遇到了多处问题,首先一个自己封装的HTTP请求方法执行就返回500错误,至于是为什么,昨天本想问他们客户,但是由于周末没上班,所以就没管它了,之后使用了官方DEMO中集成的HTTP请求包之后这个问题解决了。
1、将官方的HTTP请求包增加到Servlet应用中.下面截图

将上面圈中的.jar Copy到项目对应的Apatch-Tomcat 路径下的lib文件夹内,
接着将下面这几个类引入到对应的Servlet页面中。
import org.apache.commons.codec.digest.DigestUtils;
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;
下面是执行代码:
//友盟推送
JSONObject UmentPushIosPrameter=new JSONObject();
try { //对应APP key
UmentPushIosPrameter.put("appkey", "568f2ccbe0f55a3e050017?");
//下面是将时间转换为时间格式字符串 这里时间戳必须使用10位
UmentPushIosPrameter.put("timestamp", System.currentTimeMillis()/ 1000);
//推送类型:单个设备
UmentPushIosPrameter.put("type", "unicast");
//测试设备TOKEN
UmentPushIosPrameter.put("device_tokens", "4aecb635c2a43da05eeca57d7e97665df6d7c26f6bd00f6dcfd5c70477b0dd30");
UmentPushIosPrameter.put("production_mode", "false"); //production_mode JSONObject payloadFirstPrameter=new JSONObject();
//自定义键值对
payloadFirstPrameter.put("name", "阿萨德发射点发"); JSONObject apsFirstPrameter=new JSONObject();
//推送内容
String postContent= "阿莱克斯的法律框架";
apsFirstPrameter.put("alert", postContent);
apsFirstPrameter.put("badge", "1");
apsFirstPrameter.put("sound", "default"); payloadFirstPrameter.put("aps", apsFirstPrameter);
//增加到根节点
UmentPushIosPrameter.put("payload",payloadFirstPrameter); //增加到根节点
String GetEncryptStr="POST"+"http://msg.umeng.com/api/send"+UmentPushIosPrameter.toString()
+"pa4nfw4hz3mprilryuo2yjdwjlipkv?";//对应的App Master Secret //加密
String Ok1 = DigestUtils.md5Hex(GetEncryptStr); String unicastParameter= UmentPushIosPrameter.toString();
StringEntity se = new StringEntity(unicastParameter.toString(), "UTF-8");
String url = "http://msg.umeng.com/api/send" + "?sign=" + Ok1;
HttpPost post = new HttpPost(url);
post.setHeader("User-Agent", USER_AGENT);
post.setEntity(se);
// Send the post request and get the response
HttpResponse response1 = client.execute(post);
int status = response1.getStatusLine().getStatusCode();
System.out.println("Response Code : " + status);
BufferedReader rd = new BufferedReader(new InputStreamReader(response1.getEntity().getContent()));
StringBuffer result = new StringBuffer();
String line = "";
while ((line = rd.readLine()) != null) {
result.append(line);
}
System.out.println(result.toString());
if (status == 200) {
System.out.println("Notification sent successfully.");
} else {
System.out.println("Failed to send the notification!");
} } catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
当然推送方式还有很多种,包括Android的,这些直接去官方文档看,增加对应参数就可以了。
这里我要说一个我遇到的问题, 拼接MD5加密字符串时遇到的,官方的DEMO是将 App Master Secret:这个拼接参数 .getBytes("utf8")转成Byte类型了的,但是这里我使用相同的方法后,返回一个加密token错误,之后我不将这个参数转换成Byte类型,就通过了。
String GetEncryptStr="POST"+"http://msg.umeng.com/api/send"+UmentPushIosPrameter.toString()
+"pa4nfw4hz3mprilryuo2yjdwjlipkv?";//对应的App Master Secret
本人创业做的一款androidApp, 下载量已经有2000多万,各种当前热门的网络手机奖励红包全部集成,另外还有热门电影和淘宝高额优惠券!很适合各类型的用户。

java servlet手机app访问接口(四)推送的更多相关文章
- java servlet手机app访问接口(一)数据加密传输验证
前面几篇关于servlet的随笔,算是拉通了 servlet的简单使用流程,接下去的文章将主要围绕手机APP访问接口这块出发续写,md5加密传输--->短信验证--->手机推送---> ...
- java servlet手机app访问接口(三)高德地图云存储及检索
这篇关于高德地图的随笔内容会多一点, 一.业务说明 对应APP业务中的成员有两类,一是服务人员,二是被服务人员, 主要实现功能, 对APP中的服务人员位置进行时时定位, 然后通过被服务人员登 ...
- java servlet手机app访问接口(二)短信验证
今天找了几个短信平台,其实最想使用的一个是sharesdk,使用它上面http api短信功能,不仅价格低,而且最少可以充值100RMB,但是审核过于严格,对应APP还必须集成他们的短信功能,而且要上 ...
- java实现利用httpclient访问接口
HTTP协议时Internet上使用的很多也很重要的一个协议,越来越多的java应用程序需要通过HTTP协议来访问网络资源. HTTPClient提供的主要功能: 1.实现了所有HTTP的方法(GET ...
- 26.app后端怎么架设推送服务
推送服务已经是app的标配了.架设推送服务,除了可以使用第三方服务商外,也有大量的开源技术可以选择. 现在推送主要分两块,android推送和ios推送,在下面分别论述: 1. Android推 ...
- C#微信接口之推送模板消息功能示例
本文实例讲述了C#微信接口之推送模板消息功能.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 ...
- Java 调用 Hbase API 访问接口实现方案
HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Google文件 ...
- App之百度云推送
集成SDK 下载最新的Android SDK压缩包并解压,在新建工程或已有工程中增加百度云推送功能. 我下载的是 ,里面有一个同名的文件夹,文件夹中有 导入云推送jar包和so文件: 将解压后的lib ...
- [入门到吐槽系列] 微信小程序 敏感违规图片检测 mediaCheckAsync,客服接口 消息推送 的各种坑分享!
前言: 最近需要做个用户上传图片,服务端校验图片问题的需求.需要使用小程序消息推送,异步接受腾讯的图片验证回调.实在太多坑了. 相信10分钟看完本文的朋友,可以非常顺利避坑. 前期准备: 首先需要一个 ...
随机推荐
- Permission is only granted to system apps
原文地址http://jingyan.baidu.com/article/9113f81b2e7a8c2b3314c711.html
- Atitit 面向对象弊端与问题 坏处 缺点
Atitit 面向对象弊端与问题 坏处 缺点 1.1. 状态fsm,反模块化,又是反并行的,这是它的非常固有的特征, 1 1.2. 现时的OOP编程有可能不缓存友好(cache friendly) ...
- Java基础-接口中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,
36.中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产.请编写一个java应用程序描述上述的体制现象. 要求如下: (1)该应用程序中有一个“党中央”接口 ...
- Android入门(十三)内容提供器
原文链接:http://www.orlion.ga/612/ 内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一 ...
- Android入门(八)广播
原文链接:http://www.orlion.ga/572/ 一.广播机制 Android中的每个应用程序都可以对自己感兴趣的广播进行注册,这样该程序就只会接收到自己所关心的广播内容,这些广 播可能是 ...
- haslayout详解
定义 haslayout是IE7-浏览器的特有属性.hasLayout是一种只读属性,有两种状态:true或false.当其为true时,代表该元素有自己的布局,否则代表该元素的布局继承于父元素. [ ...
- CSS实现水平居中的4种思路
× 目录 [1]text-align [2]margin [3]absolute [4]flex 前面的话 水平居中是经常遇到的问题.看似方法较多,条条大路通罗马.但系统梳理下,其实都围绕着几个思路展 ...
- 在MVC5和webAPI下是用Autofac依赖注入
很多书本中都提到依赖注入,控制反转等概念,这些都是为了实现松耦合层.组件和类目的. 常见的是使用Repository类分离Controller和Model的直接联系.而为了解除Repository类和 ...
- 开发人员看测试之TDD和BDD
前言: 已经数月没有来园子了,写博客贵在坚持,一旦松懈了,断掉了,就很难再拾起来.但是每每看到自己博客里的博文的浏览量每天都在增加,都在无形当中给了我继续写博客的动力.最近这两天有听到Jbehave这 ...
- 23套新鲜出炉的网站和手机界面 PSD 素材
Web 用户界面,移动用户界面和线框套件对设计师很有用,因为这些套件让他们使用快速和有效的方式复制用户界面.这些类型的工具包提供了一个基本的用户界面元素,用于它们需要制作的网站或软件模型. 在这篇文章 ...