博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
激光推送
阅读量:6218 次
发布时间:2019-06-21

本文共 4279 字,大约阅读时间需要 14 分钟。

1,首先需要将你的app在极光官网上进行注册,获取一个ApiKey,一个APIMasterSecret(密码),将这两个值保存在配置文件(app/web.config)中,具体手机开发端需要做什么操作我们.net平台不管

2,读取配置中的值

private readonly string ApiKey = "";private readonly string APIMasterSecret = "";ApiKey = ConfigurationManager.AppSettings["ApiKey"].ToString();//Android ApiKeyAPIMasterSecret = ConfigurationManager.AppSettings["APIMasterSecret"].ToString();//Android密码

3,开始推送方法

///         /// Android极光推送        ///         /// 设备号        public void PushAndroid(string RegistrationID)        {            try            {                Random ran = new Random();                int sendno = ran.Next(1, 2100000000);//随机生成的一个编号                string app_key = ApiKey;                string masterSecret = APIMasterSecret;                int receiver_type = 5;//接收者类型。2、指定的 tag。3、指定的 alias。4、广播:对 app_key 下的所有用户推送消息。5、根据 RegistrationID 进行推送。当前只是 Android SDK r1.6.0 版本支持                string receiver_value = RegistrationID;                int msg_type = 1;//1、通知2、自定义消息(只有 Android 支持)                string msg_content = "{\"n_builder_id\":\"00\",\"n_title\":\"" + Title + "\",\"n_content\":\"" + Content + "\"}";//消息内容                string platform = "android";//目标用户终端手机的平台类型,如: android, ios 多个请使用逗号分隔。                string verification_code = GetMD5Str(sendno.ToString(), receiver_type.ToString(), receiver_value,masterSecret);//验证串,用于校验发送的合法性。MD5                string postData = "sendno=" + sendno;                postData += ("&app_key=" + app_key);                postData += ("&masterSecret=" + masterSecret);                postData += ("&receiver_type=" + receiver_type);                postData += ("&receiver_value=" + receiver_value);                postData += ("&msg_type=" + msg_type);                postData += ("&msg_content=" + msg_content);                postData += ("&platform=" + platform);                postData += ("&verification_code=" + verification_code);                //byte[] data = encoding.GetBytes(postData);                byte[] data = Encoding.UTF8.GetBytes(postData);                string resCode = GetPostRequest(data);//调用极光的接口获取返回值                JpushMsg msg = Newtonsoft.Json.JsonConvert.DeserializeObject
(resCode);//定义一个JpushMsg类,包含返回值信息,将返回的json格式字符串转成JpushMsg对象 } catch (Exception ex) { } }

4,MD5加密验证字符串,用于调用接口的时候,极光将做验证使用

///         /// MD5字符串        ///         /// 参数数组        /// 
MD5字符串
public string GetMD5Str(params string [] paras) { string str = ""; for(int i=0;i

5,http Post方式调用极光的推送服务

///         /// Post方式请求获取返回值        ///         ///         /// 
public string GetPostRequest(byte[] data) { HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://api.jpush.cn:8800/v2/push"); myRequest.Method = "POST";//极光http请求方式为post myRequest.ContentType = "application/x-www-form-urlencoded";//按照极光的要求 myRequest.ContentLength = data.Length; Stream newStream = myRequest.GetRequestStream(); // Send the data. newStream.Write(data, 0, data.Length); newStream.Close(); // Get response var response = (HttpWebResponse)myRequest.GetResponse(); using (var reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("UTF-8"))) { string result = reader.ReadToEnd(); reader.Close(); response.Close(); return result; } }

6,定义一个类,接收返回值

public class JpushMsg    {        private string sendno;//编号        public string Sendno        {            get { return sendno; }            set { sendno = value; }        }        private string msg_id;//信息编号        public string Msg_id        {            get { return msg_id; }            set { msg_id = value; }        }        private string errcode;//返回码        public string Errcode        {            get { return errcode; }            set { errcode = value; }        }        private string errmsg;//错误信息        public string Errmsg        {            get { return errmsg; }            set { errmsg = value; }        }    }

好了,OK了,有什么不对的地方希望大家指出,谢谢!

转载地址:http://bzlja.baihongyu.com/

你可能感兴趣的文章
FineUIPro v5.1.0 发布了!
查看>>
easyui的日期控件
查看>>
[WPF 容易忽视的细节] —— Exception in WPF's Converter
查看>>
网易严选的wkwebview测试之路
查看>>
Dubbo高可用
查看>>
折叠代码块 C#中用 #region和#endregion java中用 //region和//endregion
查看>>
高性能mysql学习笔记
查看>>
[ffmpeg] 音频样本
查看>>
jQuery 3D圆盘旋转焦点图 支持鼠标滚轮
查看>>
非常实用全面的 C++框架,库类等资源
查看>>
VS Code 常用插件
查看>>
kubectl top查看k8s pod的cpu , memory使用率情况
查看>>
fputs
查看>>
手写代码生成器
查看>>
SQL Server 维护计划备份主分区
查看>>
VS2008的安装,OpenCV2.1的安装,以及变量环境的设置
查看>>
Unable to install breakpoint in XXX due to missing line number attributes的解决
查看>>
分享SQL2005 查询表结构的SQL语句
查看>>
Android 手机如何防范吸费插件
查看>>
Copy-On-Write容器之二:CopyOnWriteArraySet
查看>>