91 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Linq;
 | |
| using System.Net.Security;
 | |
| using System.Net;
 | |
| using System.Security.Cryptography.X509Certificates;
 | |
| using System.Text;
 | |
| using System.Threading.Tasks;
 | |
| using RestSharp;
 | |
| using Newtonsoft.Json;
 | |
| using IRaCIS.Core.Infrastructure.Extention;
 | |
| using NPOI.SS.Formula.Functions;
 | |
| 
 | |
| namespace IRaCIS.Core.Application.Helper.OtherTool
 | |
| {
 | |
|     public static class RestClientAPI
 | |
|     {
 | |
|         public static async Task<T> GetAsync<T>(string api, Dictionary<string, string> query = null, Dictionary<string, string> headers = null)
 | |
|         {
 | |
|             using var _client = new RestClient();
 | |
| 
 | |
|             var request = new RestRequest(api, Method.Get);
 | |
| 
 | |
|             if (query != null)
 | |
|             {
 | |
|                 foreach (var kv in query)
 | |
|                 {
 | |
|                     request.AddParameter(kv.Key, kv.Value);
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             if (headers != null)
 | |
|             {
 | |
|                 foreach (var header in headers)
 | |
|                 {
 | |
|                     request.AddHeader(header.Key, header.Value);
 | |
|                 }
 | |
|             }
 | |
| 
 | |
| 
 | |
|             var response = await _client.ExecuteAsync(request);
 | |
| 
 | |
|             if (response.IsSuccessful)
 | |
|             {
 | |
|                 return JsonConvert.DeserializeObject<T>(response.Content ?? string.Empty);
 | |
| 
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 Console.WriteLine($"请求失败,错误代码: {response.StatusCode}, 错误消息: {response.ErrorMessage}");
 | |
|                 return JsonConvert.DeserializeObject<T>(string.Empty);
 | |
|             }
 | |
| 
 | |
|         }
 | |
| 
 | |
|         public static async Task<T> PostAsync<T>(string api, object jsonObj = null, Dictionary<string, string> headers = null)
 | |
|         {
 | |
|             using var _client = new RestClient();
 | |
| 
 | |
|             var request = new RestRequest(api, Method.Post);
 | |
| 
 | |
|             if (jsonObj != null)
 | |
|             {
 | |
|                 request.AddJsonBody(jsonObj);
 | |
|             }
 | |
| 
 | |
|             if (headers != null)
 | |
|             {
 | |
|                 foreach (var header in headers)
 | |
|                 {
 | |
|                     request.AddHeader(header.Key, header.Value);
 | |
|                 }
 | |
|             }
 | |
| 
 | |
| 
 | |
|             var response = await _client.ExecuteAsync(request);
 | |
| 
 | |
|             if (response.IsSuccessful)
 | |
|             {
 | |
|                 return JsonConvert.DeserializeObject<T>(response.Content ?? string.Empty);
 | |
| 
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 Console.WriteLine($"请求失败,错误代码: {response.StatusCode}, 错误消息: {response.ErrorMessage}");
 | |
|                 return JsonConvert.DeserializeObject<T>(string.Empty);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 |