コード例 #1
0
        /// <summary>
        /// 获取Post结果
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="returnText"></param>
        /// <returns></returns>
        public static T GetResult <T>(string returnText)
        {
            JavaScriptSerializer js = new JavaScriptSerializer();

            //if (returnText.Contains("errcode"))
            //当错误代码不为0时,发生错误
            if (System.Text.RegularExpressions.Regex.IsMatch(returnText, @"(?isx)[\x22\x27]code[\x22\x27][\s\r\n]*\:[\s\r\n]*[1-9]+"))
            {
                //可能发生错误
                WishJsonResult errorResult = js.Deserialize <WishJsonResult>(returnText);
                if (errorResult.code != (int)ReturnCode.Success)
                {
                    //发生错误
                    throw new ErrorJsonResultException(
                              string.Format("Post请求发生错误!错误代码:{0},说明:{1}",
                                            (int)errorResult.code,
                                            errorResult.message),
                              null, errorResult);
                }
            }

            T result = js.Deserialize <T>(returnText);

            //TODO:加入特殊情况下的回调处理


            return(result);
        }
コード例 #2
0
        /// <summary>
        /// GET方式请求URL,并返回T类型
        /// </summary>
        /// <typeparam name="T">接收JSON的数据类型</typeparam>
        /// <param name="url"></param>
        /// <param name="encoding"></param>
        /// <param name="maxJsonLength">允许最大JSON长度</param>
        /// <returns></returns>
        public static T GetJson <T>(string url, Encoding encoding = null, int?maxJsonLength = null)
        {
            string returnText = RequestUtility.HttpGet(url, encoding);

            WishTrace.SendApiLog(url, returnText);

            JavaScriptSerializer js = new JavaScriptSerializer();

            if (maxJsonLength.HasValue)
            {
                js.MaxJsonLength = maxJsonLength.Value;
            }

            //if (returnText.Contains("errcode"))
            //当错误代码不为0时,发生错误
            if (System.Text.RegularExpressions.Regex.IsMatch(returnText, @"(?isx)[\x22\x27]code[\x22\x27][\s\r\n]*\:[\s\r\n]*[1-9]+"))
            {
                //可能发生错误
                WishJsonResult errorResult = js.Deserialize <WishJsonResult>(returnText);
                if (errorResult.code != (int)ReturnCode.Success)
                {
                    //发生错误
                    throw new ErrorJsonResultException(
                              string.Format("请求发生错误!错误代码:{0},说明:{1}",
                                            (int)errorResult.code, errorResult.message), null, errorResult, url);
                }
            }

            T result = js.Deserialize <T>(returnText);

            return(result);
        }
コード例 #3
0
        /// <summary>
        /// ErrorJsonResultException
        /// </summary>
        /// <param name="message">异常消息</param>
        /// <param name="inner">内部异常</param>
        /// <param name="jsonResult">WxJsonResult</param>
        /// <param name="url">API地址</param>
        public ErrorJsonResultException(string message, Exception inner, WishJsonResult jsonResult, string url = null)
            : base(message, inner, true)
        {
            JsonResult = jsonResult;
            Url        = url;

            WishTrace.ErrorJsonResultExceptionLog(this);
        }
コード例 #4
0
        /// <summary>
        /// 发送数据
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="urlFormat"></param>
        /// <param name="data"></param>
        /// <param name="sendType"></param>
        /// <param name="timeOut"></param>
        /// <param name="checkValidationResult"></param>
        /// <param name="jsonSetting"></param>
        /// <returns></returns>
        public static WishJsonResult Send(string accessToken, string urlFormat, object data, CommonJsonSendType sendType = CommonJsonSendType.POST, int timeOut = Config.TIME_OUT, bool checkValidationResult = false, JsonSetting jsonSetting = null)
        {
            WishJsonResult result = null;

            try
            {
                result = Wl.Wish.CommonAPIs.CommonJsonSend.Send(accessToken, urlFormat, data, sendType, timeOut, checkValidationResult, jsonSetting);
            }
            catch (Exception)
            {
                throw;
            }

            return(result);
        }