最近刚从极光推送官网上看到V2版本要停用,不得不有重新写V3版本的。这里用到了 HTTP Basic Authentication

http://www.cnblogs.com/pingming/p/4165057.html

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

<appSettings>
<add key="ApiKey" value="**********"/>
<add key="APIMasterSecret" value="*******"/>
</appSettings>

2、读取配置中的值

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

3、开始推送方法

/// <summary>
/// 极光推送V3版本
/// </summary>
/// <param name="content"></param>
public string PushV3(string content)
{
string app_key = ApiKey;
string masterSecret = APIMasterSecret; string u_ = app_key + ":" + masterSecret;//对应推送 -u string base64_ = EncodeBase64(u_);//编码 u_

StringBuilder sbs = new StringBuilder();
sbs.Append("{");
sbs.Append("\"platform\": \"all\",");
sbs.Append("\"audience\": \"all\",");
sbs.Append("\"notification\": {");
sbs.Append("\"android\": {");
sbs.Append("\"alert\": \"" + content + "\",");
sbs.Append("\"title\": \"武林国小\",");
sbs.Append("\"builder_id\": 1,");
sbs.Append("\"extras\": {");
sbs.Append("\"newsid\": 321");
sbs.Append("}");
sbs.Append(" },");
sbs.Append("\"ios\": {");
sbs.Append("\"alert\": \"" + content + "\",");
sbs.Append("\"sound\": \"default\",");
sbs.Append("\"badge\": \"+1\",");
sbs.Append("\"extras\": {");
sbs.Append("\"news_id\": 134");
sbs.Append(" }");
sbs.Append(" }");
sbs.Append("},");
sbs.Append("\"message\": {");
sbs.Append("\"msg_content\": \"" + content + "\",");
sbs.Append("\"content_type\": \"text\",");
sbs.Append("\"title\": \"武林国小\",");
sbs.Append("\"extras\": {");
sbs.Append("\"key\": \"value\"");
sbs.Append("}");
sbs.Append("},");
sbs.Append("\"sms_message\":{");
sbs.Append("\"content\":\"" + content + "\",");
sbs.Append("\"delay_time\":3600");
sbs.Append("},");
sbs.Append("\"options\": {");
sbs.Append("\"time_to_live\": 60,");
sbs.Append("\"apns_production\": true");
sbs.Append("}");
sbs.Append("}");

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

//使用 HTTP  Basic Authentication 的方式做访问授权

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

            Uri url = new Uri("https://api.jpush.cn/v3/push");
CredentialCache mycache = new CredentialCache();
mycache.Add(url, "Basic", new NetworkCredential(app_key, masterSecret)); HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);// myRequest.Method = "POST";//极光http请求方式为post
myRequest.ContentType = "application/json";////按照极光的要求
myRequest.ContentLength = data.Length;
myRequest.Credentials = mycache;
myRequest.KeepAlive = true;
myRequest.Headers.Add("Authorization", "Basic "+base64_);//http头添加
Stream newStream = myRequest.GetRequestStream(); // Send the data.
newStream.Write(data, , data.Length);
newStream.Close(); // Get response
var response = (HttpWebResponse)myRequest.GetResponse();
string staCode= response.StatusCode.ToString();//返回状态码:200 OK
using (var reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("UTF-8")))
{
string result = reader.ReadToEnd();
reader.Close();
response.Close();
return staCode;
}
}

.net平台借助第三方推送服务在推送Android,IOS消息(极光推送_V3版本)最新的更多相关文章

  1. atitit.web 推送实现方案集合(2)---百度云,jpush 极光推送 ,个推的选型比较.o99

    atitit.web 推送实现方案集合(2)---百度云,jpush 极光推送 ,个推的选型比较.o99 1.1. 云推送有推送次数或频率的限制吗? 1 1.2. 推送的消息长度 1 1.3. 离线消 ...

  2. 1、Android Studio集成极光推送(Jpush) 报错 java.lang.UnsatisfiedLinkError: cn.jpush.android.service.PushProtoco

    Android studio 集成极光推送(Jpush) (华为手机)报错, E/JPush: [JPushGlobal] Get sdk version fail![获取sdk版本失败!] W/Sy ...

  3. Android开发之极光推送基本步骤

    [转]:http://wyong.blog.51cto.com/1115465/1402842 两天在研究推送的问题,后来确定了用极光推送,本人将整个过程整理一下: 1.到极光官网注册账号:https ...

  4. 制作IOS 后台极光推送时,遇到的小问题

    推送广义上分为两种, 一种是  程序在前台的时候,不想在任务栏里面显示通知,直接在app中进行某种操作.这个叫做自定义消息.这个是在前台时,app与极光后台建立了一个长链接. 另一种是  程序处于前. ...

  5. .net平台借助第三方推送服务在推送Android消息(极光推送)

    最近做的.net项目(Windows Service)需要向Android手机发送推送消息,真是有点困难,没有搞过就不停的搜文档,最后看到了一个开源项目PushSharp,可以在.net平台推送IOS ...

  6. iOS:极光推送控制器跳转

    在前面已经做完了极光消息的推送,那么有消息了,如何跳转到需要的控制器呢?其实,主要还是在userInfo这个消息里面做判断来处理,具体如下: 下面这两个是远程推送时接收消息的方法,这是应用程序提供的方 ...

  7. Android端 配置极光推送

    由于业务须要,androidclient须要加推送.原来採用的百度推送.可是小米手机有时候收不到.后来换成了极光推送,极光的话全部设备都能收到推送,可是在高峰的时候会推迟.博主说的免费版的,收费的没用 ...

  8. iOS开发——极光推送

    1.到极光官网 https://www.jpush.cn/ 下载极光推送SDK. 具体如何集成最好参考官网的文档,以及一些失败的原因.文档非常详细,我也是参考集成的. 2.到极光推送官网注册自己的应用 ...

  9. iOS 集成极光推送

    最近极光推送更新到V3版本之后,推送又不成功!配合服务器联调了半天,发现是服务器环境配置有问题. 想着就把极光推送的步骤给记录下来. 一.配置push证书 这个可以到极光文档里写,很详细 二.导入必要 ...

随机推荐

  1. Spark运行模式_Spark自带Cluster Manager的Standalone Client模式(集群)

    终于说到了体现分布式计算价值的地方了! 和单机运行的模式不同,这里必须在执行应用程序前,先启动Spark的Master和Worker守护进程.不用启动Hadoop服务,除非你用到了HDFS的内容. 启 ...

  2. 使用boost.asio实现网络通讯

    #include <boost/asio.hpp> #define USING_SSL //是否加密 #ifdef USING_SSL #include <boost/asio/ss ...

  3. BAPIを使用のODATA作成

    入力: AIRLINE テーブル: FLIGHT_LIST Step 1: TCode: SEGW ⇒新規作成ボタンを押す Step 2: オブジェクト名など入力 Step 3: オブジェクト作成完了 ...

  4. 北京Uber优步司机奖励政策(3月12日~3月13日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  5. (AOSP)repo checkout指定版本

    aosp 怎么切换分支? To properly switch Android version, all you need to change is branch for your manifest ...

  6. python 函数定义顺序

    #!/usr/bin/python # Hello World def order(): print("haha") print('Hello World!') order()

  7. javaweb(六)——Servlet开发(二)

    一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...

  8. OSG-获取OSG的源代码和第三方库并编译

    获取OSG的源代码有很多方式. 这里说下其中的两个地方,第一就是中国的OSG网站http://www.osgchina.org/,这个网站目前应该是由中国西安恒歌科技维护,同时,西安恒歌科技也是一家已 ...

  9. 错误码:2003 不能连接到 MySQL 服务器在 (10061)

    今天在ubuntu上安装了mysql服务器,在windows上用客户端软件连接mysql服务器时,出现错误: 错误码: 不能连接到 MySQL 服务器在 () 折腾来折腾去没搞好,防火墙也关了,330 ...

  10. 第二篇 Flask基础篇之(闪现,蓝图,请求扩展,中间件)

    本篇主要内容: 闪现 请求扩展 中间件 蓝图 写装饰器,常用 functools模块,帮助设置函数的元信息 import functools def wrapper(func): @functools ...