Exemplo n.º 1
0
        /// <summary>
        /// 推送消息,注意如果初始化本类已经填写了appkey,
        /// <paramref name="paramsJsonObj"/> 里面的appkey会自动赋值
        /// 反之如果您填写了<paramref name="paramsJsonObj"/> 里面的appkey,将采用参数里面的值,忽略本类初始化值。
        /// </summary>
        /// <param name="paramsJsonObj"></param>
        /// <returns></returns>
        public ReturnJsonClass SendMessage(PostUMengJsonBase paramsJsonObj)
        {
            var             request        = CreateHttpRequest(paramsJsonObj);
            var             resultResponse = requestClient.Execute(request);
            ReturnJsonClass rjs            = SimpleJson.DeserializeObject <ReturnJsonClass>(resultResponse.Content);

            return(rjs);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 异步推送消息,注意如果初始化本类已经填写了appkey,
        /// <paramref name="paramsJsonObj"/> 里面的appkey会自动赋值
        /// 反之如果您填写了<paramref name="paramsJsonObj"/> 里面的appkey,将采用参数里面的值,忽略本类初始化值。
        /// </summary>
        /// <param name="paramsJsonObj"></param>
        /// <param name="callback"></param>
        public void AsynSendMessage(PostUMengJsonBase paramsJsonObj, Action <ReturnJsonClass> callback)
        {
            var request = CreateHttpRequest(paramsJsonObj);

            requestClient.ExecuteAsync(request, resultResponse =>
            {
                if (callback != null)
                {
                    callback(SimpleJson.DeserializeObject <ReturnJsonClass>(resultResponse.Content));
                }
            });
        }
Exemplo n.º 3
0
        private string InitParamsAndUrl(PostUMengJsonBase paramsJsonObj)
        {
            if (string.IsNullOrEmpty(paramsJsonObj.appkey))
            {
                paramsJsonObj.appkey = this.appkey;
            }
            //重置url
            this.apiFullUrl = string.Concat(requestProtocol, "://", hostUrl, "/", postPath, "/");

            paramsJsonObj.timestamp = GetTimeStamp().ToString();

            //string json = RestSharp.SimpleJson.SerializeObject(paramsJsonObj);
            Newtonsoft.Json.JsonSerializerSettings jssetting = new Newtonsoft.Json.JsonSerializerSettings();
            jssetting.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
            string json = Newtonsoft.Json.JsonConvert.SerializeObject(paramsJsonObj, jssetting);

            json = json.Replace("content_available", "content-available");
            string calcSign = md5.GenerateMD5(requestMethod + apiFullUrl + json + appMasterSecret).ToLower();

            this.CalcSign = calcSign;
            return(json);
        }
Exemplo n.º 4
0
        private RestRequest CreateHttpRequest(PostUMengJsonBase paramsJsonObj)
        {
            string bodyJson = InitParamsAndUrl(paramsJsonObj);

            if (requestClient == null)
            {
                var FullUrl = string.Format("{0}?sign={1}", this.apiFullUrl, this.CalcSign);
                requestClient           = new RestClient(FullUrl);
                requestClient.Encoding  = Encoding.UTF8;
                requestClient.UserAgent = USER_AGENT;
            }
            else
            {
                var FullUrl = string.Format("{0}?sign={1}", this.apiFullUrl, this.CalcSign);
                requestClient.BaseUrl = new Uri(FullUrl);
            }
            var request = new RestRequest(Method.POST);

            request.RequestFormat = DataFormat.Json;
            request.AddParameter("application/json", bodyJson, ParameterType.RequestBody);
            //request.AddJsonBody(paramsJsonObj);
            return(request);
        }