美文网首页
.net调用rest api push apiv3给androi

.net调用rest api push apiv3给androi

作者: jsync | 来源:发表于2017-07-26 15:24 被阅读0次

    说实话并不会写.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是否正确,可能会多一个空格哦。

    相关文章

      网友评论

          本文标题:.net调用rest api push apiv3给androi

          本文链接:https://www.haomeiwen.com/subject/pxxokxtx.html