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(), }); } }
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)); }