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);
|
|
}
|
|
}
|
|
}
|
|
}
|