Exemplo n.º 1
0
        public object cache()
        {
            var queryStrings = WebUtil.UrlDecode(Request.RequestUri.Query.TrimStart('?'), Encoding.UTF8);

            LogUtil.Info(string.Format("请求参数:{0}", queryStrings));

            var requestForms = HttpRequestUtil.GetNameValueCollection(queryStrings);
            var key          = requestForms["key"] as string;
            var ret          = SingleInstance <SystemBLL> .Instance.GetCache(key);

            return(OK(ret));
        }
        /// <summary>
        /// 获取请求参数列表
        /// </summary>
        /// <param name="sortDics">参数字典</param>
        /// <param name="queryStrings">请求参数串</param>
        /// <param name="actionDesc">接口描述</param>
        /// <returns></returns>
        protected NameValueCollection GetRequestParams(out SortedDictionary <string, object> sortDics, out string queryStrings, bool isDecode = true, string actionDesc = "")
        {
            queryStrings = GetQueryStrings();
            LogUtil.Info(string.Format("{0}{1}请求参数:{2}", actionDesc, (!string.IsNullOrWhiteSpace(actionDesc) ? "," : string.Empty), queryStrings));

            sortDics = new SortedDictionary <string, object>();
            var requestForms = HttpRequestUtil.GetNameValueCollection(queryStrings, out sortDics, isDecode);

            if (requestForms.Keys.Count <= 0)
            {
                var msg = string.Format("{0}缺少参数!", actionDesc);
                LogUtil.Warn(msg);
            }
            return(requestForms);
        }
Exemplo n.º 3
0
        public object ReceiveMessage()
        {
            var queryStrings = WebUtil.UrlDecode(Request.RequestUri.Query.ToString().TrimStart('?'), Encoding.UTF8);

            LogUtil.Debug(string.Format("原始消息:{0}", queryStrings));

            // 判断是否是请求认证
            var requestForm = HttpRequestUtil.GetNameValueCollection(queryStrings);
            var echostr     = requestForm["echostr"] as string;
            var retstr      = echostr != null?Extensions.ToString(echostr).Trim() : string.Empty;

            if (SingleInstance <WeChatBLL> .Instance.CheckSignature(ConfigUtil.WechatToken, requestForm))
            {
                if (!String.IsNullOrEmpty(retstr))
                {
                    LogUtil.Debug(string.Format("自动回调:{0}", retstr));
                }
                else
                {
                    var stream = HttpContext.Current.Request.InputStream;
                    retstr = SingleInstance <WeChatBLL> .Instance.HandleXmlCallBackStr(stream, Request.RequestUri.Authority);

                    LogUtil.Debug(string.Format("自动回调:{0}", retstr));

                    if (retstr == EnumWeChatEventType.unsubscribe.ToString())
                    {
                        retstr = string.Empty;

                        //取消关注特殊处理:清除当前会话Session
                        var isClearOk = base.ClearCurrSession();
                        LogUtil.Debug(string.Format("取消关注,清空会话{0}!", isClearOk ? "成功" : "失败"));
                    }
                }
            }

            var responseMessage = new HttpResponseMessage {
                Content = new StringContent(retstr, Encoding.GetEncoding("UTF-8"), "text/plain")
            };

            return(responseMessage);
        }