Jiguang push REST API

       string JPushURI = "https://api.jpush.cn/v3/push";
       string app_key = "808a3e149a54f82dbdb06f47";
       string masterSecret = "ced2ca08b8b789585dfa9222";
       string msg = "zhanghuiying";

       first spelling

public static string JPush(string msg)

        {
            string result = "";
            HttpWebRequest rq = (HttpWebRequest)HttpWebRequest.Create(JPushURI);
            rq.ContentType = "application/json";
            rq.Method = "POST";
            #region 封装header与消息体
            //Header
            byte[] buffer = Encoding.Default.GetBytes(app_key + ":" + masterSecret );
            string base64 = Convert.ToBase64String(buffer);
            rq.Headers.Set(HttpRequestHeader.Authorization, base64);
            rq.Headers.Set("Authorization", base64);
            //消息体
            Dictionary<string, object> data = new Dictionary<string, object>();
            ArrayList arr = new ArrayList();
            arr.Add("android");
            data.Add("platform", arr);//推送分平台["android", "ios"]
            data.Add("audience", "all");//推送分用户"tag或者alias":["tag","alias"]
            Dictionary<string, object> notification = new Dictionary<string, object>();
            Dictionary<string, object> androidalert = new Dictionary<string, object>();
            androidalert.Add("alert", msg);//分平台传
            notification.Add("android", androidalert);
            data.Add("notification", notification);
            Dictionary<string,object> message = new Dictionary<string, object>();
            message.Add("msg_content", "Fixed message (non-broadcast) content body");
            data.Add("message", message);
            JavaScriptSerializer js = new JavaScriptSerializer();
            string json = js.Serialize(data);
            #endregion
            try
            {
                using (Stream rqs = rq.GetRequestStream())
                {
                    byte[] bytejson = Encoding.Default.GetBytes(json);
                    rqs.Write(bytejson, 0, bytejson.Length);
                    using (HttpWebResponse rp = (HttpWebResponse)rq.GetResponse())
                    {
                        using (Stream rps = rp.GetResponseStream())
                        {
                            StreamReader sr = new StreamReader(rps);
                            result = sr.ReadToEnd();
                        }
                    }
                }
            }
            catch (Exception e) { Console.WriteLine("异常:" + e.Message); }
            return result;

        }


       The second way of writing

       protected void Button1_Click(object sender, EventArgs e)
        {
            string result = "";
            try
            {
                //消息体  
                Dictionary<string, object> data = new Dictionary<string, object>();
                ArrayList arr = new ArrayList();
                arr.Add("android");
                arr.Add("ios");
                data.Add("platform", arr);
                ArrayList arr1 = new ArrayList();
                arr1.Add("JZ1098");
                Dictionary<string, object> alias = new Dictionary<string, object>();
                alias.Add("alias",arr1);
                data.Add("audience", alias);
                Dictionary<string, object> androidNotificationParam = new Dictionary<string, object>();
                //androidNotificationParam.Add("url", "0");
                //androidNotificationParam.Add("id", "0");
                //androidNotificationParam.Add("messageTitle", "0");
                //androidNotificationParam.Add("ModiflyTime", "0");
                androidNotificationParam.Add("", "{}");
                Dictionary<string, object> androidNotificationExtras = new Dictionary<string, object>();
                androidNotificationExtras.Add("option", "0");
                androidNotificationExtras.Add("param", androidNotificationParam);
                Dictionary<string, object> androidNotificationVal = new Dictionary<string, object>();
                androidNotificationVal.Add("val", androidNotificationExtras);
                Dictionary<string, object> androidNotification = new Dictionary<string, object>();
                androidNotification.Add("extras", androidNotificationVal);
                Dictionary<string, object> notification = new Dictionary<string, object>();
                notification.Add("alert", msg);
                notification.Add("android", androidNotification);
                data.Add("notification", notification);
                Dictionary<string, object>options = new Dictionary<string, object>();
                options.Add("apns_production", false);
                data.Add("options", options);
                JavaScriptSerializer js = new JavaScriptSerializer();
                string json = js.Serialize(data);
                try
                {
                    result = RequestWebClient(JPushURI, json, null, app_key, masterSecret);
                    if (!string.IsNullOrWhiteSpace(result))
                    {
                        System.Web.UI.ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg", "alert(\"推送消息成功!\");", true);//return result;
                    }
                }
                catch (Exception ex)
                {
                    System.Web.UI.ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg", "alert(\"推送消息失败!\");", true);
                }
            }
            catch (Exception ex)
            {
                System.Web.UI.ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg", "alert(\"推送消息失败!\");", true);
            }
            System.Web.UI.ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg", "alert(\"推送消息成功!\");", true);//return result;
        }

        public static string RequestWebClient(string uri, string paramStr, Encoding encoding, string username, string password)
        {
            if (encoding == null)
                encoding = Encoding.UTF8;
            string result = string.Empty;
            WebClient wc = new WebClient();
            // 采取POST方式必须加的Header
            wc.Headers.Add("Content-Type", "application/json");
            byte[] postData = encoding.GetBytes(paramStr);
            if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password))
            {
                wc.Credentials = GetCredentialCache(uri, username, password);
                wc.Headers.Add("Authorization", GetAuthorization(username, password));
            }


            byte[] responseData = wc.UploadData(uri, "POST", postData); // 得到返回字符流
            return encoding.GetString(responseData);// 解码                  
        }
        public static CredentialCache GetCredentialCache(string uri, string username, string password)
        {
            string authorization = string.Format("{0}:{1}", username, password);
            CredentialCache credCache = new CredentialCache();
            credCache.Add(new Uri(uri), "Basic", new NetworkCredential(username, password));
            return credCache;
        }
        public static string GetAuthorization(string username, string password)
        {
            string authorization = string.Format("{0}:{1}", username, password);
            return "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes(authorization));
        }

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325633621&siteId=291194637