using DefaultEdit.Log4xml; using EasyHttp.Http; using Newtonsoft.Json; using NextTreatMesDemo.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace NextTreatMesDemo.Utils { public class ApiHelper : HttpClient { public ApiHelper() { this.Request.Accept = HttpContentTypes.ApplicationJson; this.Request.ContentType = "application/json"; } public XnRestfulResult ApiGet(string uri, object query = null) { try { var response = ConvertResult(Get(uri, query)); //日志记录 System.Diagnostics.Debug.WriteLine("ReqMethod:Get,URL:" + uri + $",\r\n Code:{(int)response.Code} Request:" + response.RawText); LogHelper.MesInfo("ReqMethod:Get,URL:" + uri + $",\r\n Code:{(int)response.Code} Request:" + response.RawText); return response; } catch (Exception ex) { LogHelper.MesInfo($"GET异常,原因{ex.Message}"); return new XnRestfulResult() { Data = default(T), RawText = null, Success = false, Message = $"GET异常,原因{ex.Message}" }; } } public XnRestfulResult ApiDelete(string uri, object query = null) { try { var response = ConvertResult(Delete(uri, query)); //日志记录 System.Diagnostics.Debug.WriteLine("ReqMethod:Delete,URL:" + uri + $",\r\n Code:{(int)response.Code} Request:" + response.RawText); //LogHelper.Write_Info("ReqMethod:Delete,URL:" + uri + $",\r\n Code:{(int)response.Code} Request:" + response.RawText); return response; } catch (Exception ex) { LogHelper.MesInfo($"Delete异常,原因{ex.Message}"); return new XnRestfulResult() { Data = default(T), RawText = null, Success = false, Message = $"Delete异常,原因{ex.Message}" }; } } public XnRestfulResult ApiPost(string uri, object data, string contentType, object query = null) { try { string json = JsonConvert.SerializeObject(data); var response = ConvertResult(Post(uri, json, contentType)); //日志记录 System.Diagnostics.Debug.WriteLine("ReqMethod: Post, URL: " + uri + $",\r\n Code:{(int)response.Code} Request:" + JsonConvert.SerializeObject(data) + "\r\n Response:" + response.RawText); LogHelper.MesInfo("ReqMethod: Post, URL: " + uri + $",\r\n Code:{(int)response.Code} Request:" + JsonConvert.SerializeObject(data) + "\r\n Response:" + response.RawText); return response; } catch (Exception ex) { LogHelper.MesInfo($"Post异常,原因{ex.Message}"); return new XnRestfulResult() { Data = default(T), RawText = null, Success = false, Message = $"Post异常,原因{ex.Message}" }; } } public XnRestfulResult ApiPut(string uri, object data, string contentType, object query = null) { try { string json = JsonConvert.SerializeObject(data); var response = ConvertResult(Put(uri, json, contentType)); //日志记录 Console.WriteLine("ReqMethod: Put, URL: " + uri + $",\r\n Code:{(int)response.Code} Request:" + JsonConvert.SerializeObject(data) + "\r\n Response:" + response.RawText); LogHelper.MesInfo("ReqMethod: Put, URL: " + uri + $",\r\n Code:{(int)response.Code} Request:" + JsonConvert.SerializeObject(data) + "\r\n Response:" + response.RawText); return response; } catch (Exception ex) { LogHelper.MesInfo($"PUT异常,原因{ex.Message}"); return new XnRestfulResult() { Data = default(T), RawText = null, Success = false, Message = $"PUT异常,原因{ex.Message}" }; } } private XnRestfulResult ConvertResult(HttpResponse httpResponse) { try { XnRestfulResult xnRestfulResult = new XnRestfulResult() { Code = httpResponse.StatusCode, RawText = httpResponse.RawText, Success = false, Timestamp = httpResponse.Date.Millisecond }; //httpcoded //2开头 (请求成功)表示成功处理了请求的状态代码。 //3开头 (请求被重定向)表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。 //4开头 (请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。 //5开头(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。 if ((int)httpResponse.StatusCode < 300) { xnRestfulResult.Success = true; if (!string.IsNullOrEmpty(httpResponse.RawText)) { xnRestfulResult.Data = JsonConvert.DeserializeObject(httpResponse.RawText); //xnRestfulResult.Message = JsonConvert.DeserializeObject>(httpResponse.RawText).Message; } } return xnRestfulResult; } catch (Exception ex) { return new XnRestfulResult() { Code = httpResponse.StatusCode, Data = default(T), RawText = $"api调用异常,原因{ex.Message}", Success = false, Message = $"api调用异常,原因{ex.Message}" }; } } } }