using System; using System.Net.Http; using System.Threading.Tasks; using OSS.Http.Connect; using OSS.Http.Models; namespace OSS.Http { /// /// http请求辅助类 /// public static class HttpUtil { private static HttpClientHandler m_Handler; private static OsRest m_Client ; public static Action SetHandler { get; set; } /// /// 同步的请求方式 /// /// 请求的参数 /// 自定义的Response结果 public static Task ExecuteSync(this OsHttpRequest request,HttpCompletionOption completionOption=HttpCompletionOption.ResponseContentRead) { if (m_Client==null) { m_Handler=new HttpClientHandler(); ConfigClientHandler(m_Handler); m_Client=new OsRest(m_Handler); } return m_Client.RestSend(request, completionOption); } /// /// 配置请求处理类 /// /// public static void ConfigClientHandler(HttpClientHandler reqHandler) { reqHandler.AllowAutoRedirect = true; reqHandler.MaxAutomaticRedirections = 5; reqHandler.UseCookies = true; SetHandler?.Invoke(reqHandler); } ///// ///// 处理远程请求方法,并返回需要的实体 ///// ///// 需要返回的实体类型 ///// 远程请求组件的request基本信息 ///// 获取实体格式化方法 ///// 如果 ///// 实体类型 //public static T RestCommon(OsHttpRequest request, Func funcFormat, // Func errorButResponseFormat = null) // where T : ResultModel, new() //{ // T t = default(T); // OsHttpResponse response = ExecuteSync(request); // if (response.ResponseStatus == ResponseStatus.Completed // || response.ResponseStatus == ResponseStatus.ErrorButResponse) // { // if (response.ResponseStatus == ResponseStatus.ErrorButResponse // && errorButResponseFormat != null) // { // t = errorButResponseFormat(response); // } // else // { // t = funcFormat(response); // } // return t; // } // return t; //} } }