From 8ffda541b48cbf619f8493196da4fb44d4f3ddc5 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期五, 05 九月 2025 10:22:55 +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