123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- 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<T> ApiGet<T>(string uri, object query = null)
- {
- try
- {
- var response = ConvertResult<T>(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<T>()
- {
- Data = default(T),
- RawText = null,
- Success = false,
- Message = $"GET异常,原因{ex.Message}"
- };
- }
- }
- public XnRestfulResult<T> ApiDelete<T>(string uri, object query = null)
- {
- try
- {
- var response = ConvertResult<T>(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<T>()
- {
- Data = default(T),
- RawText = null,
- Success = false,
- Message = $"Delete异常,原因{ex.Message}"
- };
- }
- }
- public XnRestfulResult<T> ApiPost<T>(string uri, object data, string contentType, object query = null)
- {
- try
- {
- string json = JsonConvert.SerializeObject(data);
- var response = ConvertResult<T>(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<T>()
- {
- Data = default(T),
- RawText = null,
- Success = false,
- Message = $"Post异常,原因{ex.Message}"
- };
- }
- }
- public XnRestfulResult<T> ApiPut<T>(string uri, object data, string contentType, object query = null)
- {
- try
- {
- string json = JsonConvert.SerializeObject(data);
- var response = ConvertResult<T>(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<T>()
- {
- Data = default(T),
- RawText = null,
- Success = false,
- Message = $"PUT异常,原因{ex.Message}"
- };
- }
- }
- private XnRestfulResult<T> ConvertResult<T>(HttpResponse httpResponse)
- {
- try
- {
- XnRestfulResult<T> xnRestfulResult = new XnRestfulResult<T>()
- {
- 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<T>(httpResponse.RawText);
- //xnRestfulResult.Message = JsonConvert.DeserializeObject<XnRestfulResult<object>>(httpResponse.RawText).Message;
- }
- }
- return xnRestfulResult;
- }
- catch (Exception ex)
- {
- return new XnRestfulResult<T>()
- {
- Code = httpResponse.StatusCode,
- Data = default(T),
- RawText = $"api调用异常,原因{ex.Message}",
- Success = false,
- Message = $"api调用异常,原因{ex.Message}"
- };
- }
- }
- }
- }
|