.net调用rest api push apiv3给android

说实话并不会写.net,公司后台用的.net所有配合他们弄了一个简单的试了一下。

常规

到jpush官网注册成为开发者,然后配置好自己的应用,获得appkey和Master Secret。

android端集成

android端集成jpush的sdk最快的就是看官方demo,里面的东西很详细传送门

.net调用api

本文的重点
我用的是vs2017,创建项目为.mvc框架的。

直接在Controller里面发送请求给jpush

 public void getMsg()
    {
        try
        {
            //拼接数据
            string postData = "{\"platform\":\"all\",\"audience\":\"all\",\"notification\":{\"alert\" : \"Hi, JPush!\", \"android\" : { \"extras\" : { \"newsid\" : 321}}}}";
            byte[] data = Encoding.UTF8.GetBytes(postData);
            string resCode = GetPostRequest(data);//调用极光的接口获取返回值
        }
        catch (Exception ex)
        {
        }
    }

本文只是介绍这种最基本的方法,至于其中各种参数,还有数据的类型可以参照官方的介绍,这里

  /// <summary>
    /// Post方式请求获取返回值
    /// </summary>
    /// <param name="data"></param>
    /// <returns></returns>
    public string GetPostRequest(byte[] data)
    {
        HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("https://api.jpush.cn/v3/push");
        myRequest.Method = "POST";//极光http请求方式为post
        myRequest.ContentType = "application/json";//按照极光的要求
        myRequest.ContentLength = data.Length;
        string myHeader = Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(app_key + ":" + masterSecret));
        myRequest.Headers.Add("Authorization", "Basic "+ myHeader);
        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;
        }
    }

然后把项目跑起来,直接在浏览器里面掉对应接口的方法,比如http://localhost:55568/home/getMsg
然后手机端就会收到通知。

遇到的问题

首先保证android端能收到通知,可以先在jpush后台发送通知测试。
然后controller里面调用方法后返回401,检查自己的app_key 和masterSecret是否正确,可能会多一个空格哦。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,856评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,309评论 4 61
  • 本作品参与#热血九月,迷彩青春#军训线上作品征集活动,本人承诺,作品内容为原创,且未在其他平台上发表过。 ...
    九思不才阅读 3,308评论 0 3
  • 先生课中在事实部分:组织设计案例解析的开始建议大家可以研究:华为和联想的组织变迁、阿里和腾讯的平台化、台塑的组织管...
    杭州八届要读万卷书阅读 4,425评论 0 1
  • 哪一个人的情绪没有过阴暗面呢?谁的青春没用过雨季呢? 当我说“我挺心疼当时的自己”,你说“不要说了,好沉重的话题。...
    棉棉墨依阅读 1,521评论 0 0