using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO.Compression; using System.IO; using System.Net;

namespace demo {     class MD5     {         public static string MD5Encrypt(string strSource)         {

return MD5Encrypt(strSource, 32);

}

/// <summary>

/// </summary>

/// <param name="strSource">待加密字串</param>

/// <param name="length">16或32值之一,其它则采用.net默认MD5加密算法</param>

/// <returns>加密后的字串</returns>

public static string MD5Encrypt(string strSource, int length)         {

byte[] bytes = Encoding.ASCII.GetBytes(strSource);

byte[] hashValue = ((System.Security.Cryptography.HashAlgorithm)System.Security.Cryptography.CryptoConfig.CreateFromName("MD5")).ComputeHash(bytes);

StringBuilder sb = new StringBuilder();

switch (length)             {

case 16:

for (int i = 4; i < 12; i++)

sb.Append(hashValue[i].ToString("x2"));

break;

case 32:

for (int i = 0; i < 16; i++)                     {

sb.Append(hashValue[i].ToString("x2"));

}

break;

default:

for (int i = 0; i < hashValue.Length; i++)                     {

sb.Append(hashValue[i].ToString("x2"));

}

break;

}

return sb.ToString();

}

public static string doSend()         {

IDictionary<string, string> parameters = new Dictionary<string, string>();

string html = string.Empty;

int sendno = 1;

string receiverValue = "eric";//这个是一个别名

int receiverType = 4;

string appkeys = "51b45123b7313212ba35123dcc7e303123257eb";

String input = sendno.ToString() + receiverType + "" + "5232135e230314a412321312bb2fb12133d27c845";

string verificationCode = MD5Encrypt(input);

string content = "{\"n_content\":\"" + receiverValue + "\",\"n_builder_id\":\"1\"}"; //发送的内容

string loginUrl = "http://api.jpush.cn:8800/sendmsg/v2/sendmsg";

parameters.Add("sendno", sendno.ToString());

parameters.Add("app_key", appkeys);

parameters.Add("receiver_type", receiverType.ToString());

parameters.Add("verification_code", verificationCode);   //MD5

parameters.Add("msg_type", "1");

parameters.Add("msg_content", content);        //内容

parameters.Add("platform", "android,ios");

HttpWebResponse response = HttpWebResponseUtility.CreatePostHttpResponse(loginUrl, parameters, null, null, Encoding.UTF8, null);

if (response != null)             {

// 得到返回的数据流

Stream receiveStream = response.GetResponseStream();

// 如果有压缩,则进行解压

if (response.ContentEncoding.ToLower().Contains("gzip"))                 {

receiveStream = new GZipStream(receiveStream, CompressionMode.Decompress);

}

// 得到返回的字符串

html = new StreamReader(receiveStream).ReadToEnd();

}

return html;

}

} }

byte[] data = Encoding.UTF8.GetBytes(buffer.ToString());

using (Stream stream = request.GetRequestStream())             {

stream.Write(data, 0, data.Length);

}

}

return request.GetResponse() as HttpWebResponse;

}

private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)     {

return true; //总是接受

}

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; using System.IO.Compression;

namespace demo {     class Program     {         public static string MD5Encrypt(string strSource)         {

return MD5Encrypt(strSource, 32);

}         public static string MD5Encrypt(string strSource, int length)         {

byte[] bytes = Encoding.ASCII.GetBytes(strSource);

byte[] hashValue = ((System.Security.Cryptography.HashAlgorithm)System.Security.Cryptography.CryptoConfig.CreateFromName("MD5")).ComputeHash(bytes);

StringBuilder sb = new StringBuilder();

switch (length)             {

case 16:

for (int i = 4; i < 12; i++)

sb.Append(hashValue[i].ToString("x2"));

break;

case 32:

for (int i = 0; i < 16; i++)                     {

sb.Append(hashValue[i].ToString("x2"));

}

break;

default:

for (int i = 0; i < hashValue.Length; i++)                     {

sb.Append(hashValue[i].ToString("x2"));

}

break;

}

return sb.ToString();

}         public static string doSend()         {

IDictionary<string, string> parameters = new Dictionary<string, string>();

string html = string.Empty;

int sendno = 1;

string receiverValue = "863094010028545";//这个是一个别名   如果使用别名需要加参数 parameters.Add("receiver_value", receiverValue.ToString());  否则去掉这行代码

int receiverType = 3;//3是使用别名,4是使用广播

string appkeys = "6749f40904629f928a5c28e4";             string appkeysCode = "ed55187688f7ba184d34cb97";//极光推送portal 上分配的 appKey 的验证串(masterSecret)             String input = sendno.ToString() + receiverType + receiverValue + appkeysCode;

string verificationCode = MD5Encrypt(input);             string strcontent = "测试";             string content = "{\"n_content\":\"" + strcontent + "\",\"n_builder_id\":\"1\"}"; //发送的内容

string loginUrl = "http://api.jpush.cn:8800/sendmsg/v2/sendmsg";

parameters.Add("sendno", sendno.ToString());

parameters.Add("app_key", appkeys);

parameters.Add("receiver_type", receiverType.ToString());             parameters.Add("receiver_value", receiverValue.ToString());             parameters.Add("verification_code", verificationCode);   //MD5

parameters.Add("msg_type", "1");

parameters.Add("msg_content", content);        //内容

parameters.Add("platform", "android,ios");

HttpWebResponse response = HttpWebResponseUtility.CreatePostHttpResponse(loginUrl, parameters, null, null, Encoding.UTF8, null);

if (response != null)             {

// 得到返回的数据流

Stream receiveStream = response.GetResponseStream();

// 如果有压缩,则进行解压

if (response.ContentEncoding.ToLower().Contains("gzip"))                 {

receiveStream = new GZipStream(receiveStream, CompressionMode.Decompress);

}

// 得到返回的字符串

html = new StreamReader(receiveStream).ReadToEnd();

}

Console.WriteLine("{0}", html);             return html;

}         static void Main(string[] args)         {             doSend();             Console.ReadKey();         }     } }

}

激光推送(ios,安卓)的更多相关文章

  1. iOS开发中怎么样使用激光推送

    1.注册激光推送的账号 ----> 创建应用 2.上传推送测试和发布的p12文件  注意密码的填写 3.下载sdk并拖进工程里 4.在build setting 搜索search   把路径改一 ...

  2. react-native android 和ios 集成 jpush-react-native 激光推送

    安装 $ npm install jpush-react-native --save # jpush-react-native 版本以后需要同时安装 jcore-react-native $ npm ...

  3. 阿里云移动推送 ios项目添加SDK步骤

    添加阿里云Pods仓库和各产品SDK Pod依赖,配置步骤如下: 1. CocoaPods集成添加阿里云Pods仓库,Podfile添加: source 'https://github.com/ali ...

  4. 1.NSNotification|远程通知|本地通知|激光推送

    1.   通知在iOS中应用非常广泛,合理的应用通知可以减少冗余代码,使我们的代码层次结构变了更加的清晰明了,利于程序猿读写.它主要分为不可见通知可见通知两种: 1.1 不可见通知,主要是有系统发出的 ...

  5. 推送 iOS 10

    1:APNs通知与应用内消息对比 极光文档上面是这么写的 后来更直接的说法是: 2:下面是介绍app不同状态下面接受到通知调用的方法: // iOS 10 Support,这个是程序在前台接受到通知是 ...

  6. 【转载自友盟消息推送iOS文档】在appDelegate中注册推送

    1.2   基本功能集成指南 提示 请先在友盟的消息推送管理后台中创建App,获得AppKey和AppSecret 导入SDK 下载 UMessage_Sdk_All_x.x.x.zip并解压缩 导入 ...

  7. 百度云推送----iOS

    前言 记录一下这几天学习的百度推送,觉得这个东西弄的还挺糟心的,好多注意的地方 正文 1.先申请一个百度开发者账号 http://push.baidu.com/fc 2.创建一个新应用,并应用配置 3 ...

  8. 远程推送-----iOS

    前言 说一下我了解的推送 正文 APNs--------Apple Push Notification service 1 远程推送的大概流程及其原理 我们的设备联网时(无论是蜂窝联网还是Wi-Fi联 ...

  9. 极光推送iOS SDK教程

    iOS SDK 调试指南 iOS 调试思维导图 2 确认证书 请到"应用详情页面"确认证书可用性: 3 开发环境测试 在对  JPush iOS 开发环境进行测试前,请确保 3 个 ...

随机推荐

  1. 对ES6的yield示例分析

    近期ES6标准如火如荼的发展,其中主要还是各大浏览器的支持,最重要厂商支付宝,微信的支持,使得国内的发展也很迅猛. 这里主要是对yield关键字的,yield实际上可以看作是一种新的中断机制,大家都知 ...

  2. ASP.NET Core部署在IIS上

    1.下载安装 Windows Server Hosting ,它的作用是,让IIS有反向代理功能(Asp.Net Core Module负责反向代理工作),将请求转发到 Kestrel 2.发布网站, ...

  3. python day07

    数据类型之间的相互转换 1.字符串转换成数字类型 判断哪些可以转换成数字型可以参考下面例题: # 判断实现将所有能转换为数字类型的字符串都转换为对应类型的数字# int: '10' = > 10 ...

  4. css文字与排版

    目录 文字与排版样式 `font文字样式 排版样式(text) 文字半透明 文字阴影 背景和颜色 基本 背景简写 背景透明 背景缩放 列表样式 表格样式 表格边框样式 折叠边框 设置宽度和高度 表格对 ...

  5. Flutter控制屏幕旋转

    特定页面旋转屏幕很简单: SystemChrome.setPreferredOrientations([ ... ]); 数组中是您要支持的屏幕方向. 如果想在特定页面固定横屏, 您可以这样写: @o ...

  6. MySQL——合并查询结果

    利用  UNION 关键字,可以给出多条  SELECT  语句,并将它们的结果组合成一个结果集.合并时,两个表对应的列数和数据类型必须相同.SELECT 语句之间使用  UNION  或  UNIO ...

  7. CSS3 移动端 1PX 线变成0.5PX

    .line1 {position:relative} .line1:after {content:'';position:absolute;bottom:0;left:0;width:100%;hei ...

  8. NPOI的基本用法,导出Excel

    void DownloadForAccountIndex(IReadOnlyList<AccountInfoView> list) { NPOI.HSSF.UserModel.HSSFWo ...

  9. DAY22、面向对象

    一.复习:1.面向过程与面向对象 过程:程序流程化,可拓展性差 对象:程序流程多样化,可拓展性强 面向对象引入属性 | 方法的概念,通过所属者.语法调用2.拥有名称空间的对象:有__dict__属性, ...

  10. mysql-笔记-函数

    如果不指定:sql-mode=ignore_space ,函数名与后面的括号之前不能有空格