From d997afbfb26532dfbffcb569757e1be8fdd75088 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期四, 11 九月 2025 13:24:00 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.Core/Utils/ResourceUtils/ResourceHttpUtils.cs | 61 ++++++++++++++++++++++++++++-- 1 files changed, 56 insertions(+), 5 deletions(-) diff --git a/FlexJobApi.Core/Utils/ResourceUtils/ResourceHttpUtils.cs b/FlexJobApi.Core/Utils/ResourceUtils/ResourceHttpUtils.cs index 1983841..04199ce 100644 --- a/FlexJobApi.Core/Utils/ResourceUtils/ResourceHttpUtils.cs +++ b/FlexJobApi.Core/Utils/ResourceUtils/ResourceHttpUtils.cs @@ -7,6 +7,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Caching.Distributed; using RabbitMQ.Client; +using RTools_NTS.Util; using System; using System.Collections.Generic; using System.ComponentModel.Design; @@ -20,16 +21,45 @@ { public static class ResourceHttpUtils { - public static async Task<string> SendHttpAsync(this object request, string serviceName, string route, EnumResourceMethod method, EnumResourceHttpProvider? provider = null) + /// <summary> + /// 鍙戦�佽姹� + /// </summary> + /// <param name="request">璇锋眰鍙傛暟</param> + /// <param name="serviceName">鏈嶅姟鍚嶇О</param> + /// <param name="route">璺敱</param> + /// <param name="method">璇锋眰鏂瑰紡</param> + /// <param name="provider">璧勬簮鎻愪緵鑰�</param> + /// <param name="accessToken">璁块棶浠ょ墝</param> + /// <param name="refreshToken">鍒锋柊浠ょ墝</param> + /// <returns></returns> + public static async Task<string> SendHttpAsync( + this object request, + string serviceName, + string route, + EnumResourceMethod method, + EnumResourceHttpProvider? provider = null, + string accessToken = null, + string refreshToken = null) { serviceName = App.GetConfig<string>($"{serviceName}:ServiceName"); var url = await GetUrl(serviceName, route); - var builder = HttpRequestBuilder.Create(method.GetMethod(), url); + var builder = HttpRequestBuilder.Create(method.GetHttpMethod(), url); + if (method == EnumResourceMethod.Get) builder = builder.WithQueryParameters(request); else builder = builder.SetJsonContent(request); - IResourceHttpProvider httpProvider = + + if (accessToken.IsNotNull()) + { + builder = builder.WithHeader("Authorization", accessToken); + } + if (refreshToken.IsNotNull()) + { + builder = builder.WithHeader("X-Authorization", refreshToken); + } + + IResourceHttpProvider httpProvider = provider == EnumResourceHttpProvider.SystemUser ? new SystemUserResourceHttpProvider() : provider == EnumResourceHttpProvider.ElectronSignServer @@ -41,7 +71,17 @@ return response; } - public static async Task<TResponse> SendHttpAsync<TRequest, TResponse>(this TRequest request, EnumResourceHttpProvider? provider = null) + /// <summary> + /// 鍙戦�佽姹� + /// </summary> + /// <typeparam name="TRequest"></typeparam> + /// <typeparam name="TResponse"></typeparam> + /// <param name="request"></param> + /// <param name="provider"></param> + /// <returns></returns> + public static async Task<TResponse> SendHttpAsync<TRequest, TResponse>( + this TRequest request, + EnumResourceHttpProvider? provider = null) { var requestType = typeof(TRequest); var resourceAttribute = requestType.GetCustomAttribute<ResourceAttribute>(); @@ -75,7 +115,12 @@ return response; } - public static HttpMethod GetMethod(this EnumResourceMethod method) + /// <summary> + /// 鑾峰彇璇锋眰鏂瑰紡 + /// </summary> + /// <param name="method"></param> + /// <returns></returns> + public static HttpMethod GetHttpMethod(this EnumResourceMethod method) { switch (method) { @@ -92,6 +137,12 @@ } } + /// <summary> + /// 鑾峰彇鍋ュ悍鏈嶅姟鍦板潃 + /// </summary> + /// <param name="serviceName"></param> + /// <param name="route"></param> + /// <returns></returns> public static async Task<string> GetUrl(string serviceName, string route) { var domain = await GetHealthyServiceDomain(serviceName); -- Gitblit v1.9.1