Пример #1
0
        public ApiResult <string> Execute(string api, string jsonParam)
        {
            Request  = null;
            Response = null;

            var url = string.Concat(FxiaokeConfig.BaseUrl, api);

            Request = WebRequest.Create(url).AsHttpWebRequest()
                      .SetRequestObjWithJson(jsonParam)
                      .SetTimeout(30 * 1000);

            try
            {
                Response = Request.GetResponse().AsHttpWebResponse();
                if (Response.StatusCode != HttpStatusCode.OK)
                {
                    return(new ApiResult <string>
                    {
                        Message = Response.StatusDescription,
                        ErrorCode = (int)Response.StatusCode,
                    });
                }

                var result = Response.GetString(encoding: Encoding.UTF8);
                var obj    = JsonConvert.DeserializeObject <BaseResponse>(result);
                return(new ApiResult <string>
                {
                    Success = obj?.ErrorCode == 0,
                    Message = obj?.ErrorMessage ?? obj?.ErrorDescription ?? "发生未知异常",
                    ErrorCode = obj?.ErrorCode ?? 88888,
                    Response = result,
                    OriginalRequest = jsonParam,
                    OriginalResponse = result,
                });
            }
            catch (Exception e)
            {
                return(new ApiResult <string>
                {
                    Message = e.Message,
                    ErrorCode = 99999,
                    OriginalRequest = jsonParam,
                    OriginalResponse = e.ToString(),
                });
            }
        }
Пример #2
0
        public static dynamic GetJsonAsDynamic(this HttpWebResponse res)
        {
            var str = res.GetString();

            return(str.IsNotNullOrEmpty() ? str.JSONToDynamic() : null);
        }
        /// <summary>
        ///     获取响应字符串
        /// </summary>
        internal static string GetString(this HttpWebResponse response)
        {
            var bytes = response.GetBytes();

            return(CharacterSetCache.ContainsKey(response.ResponseUri.Host) ? CharacterSetCache[response.ResponseUri.Host].GetString(bytes) : response.GetString(bytes));
        }