Laservall_manager_system/LM.Core/Quartz/HttpManager.cs

76 lines
2.5 KiB
C#
Raw Normal View History

2025-09-25 14:37:10 +08:00
using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
2025-10-09 16:26:44 +08:00
using LM.Core.Extensions;
2025-09-25 14:37:10 +08:00
2025-10-09 16:26:44 +08:00
namespace LM.Core.Quartz
2025-09-25 14:37:10 +08:00
{
public static class HttpManager
{
public static async Task<string> SendAsync(this IHttpClientFactory httpClientFactory,
HttpMethod method,
string url,
string postData = null,
int timeOut = 180,
Dictionary<string, string> headers = null)
{
var client = httpClientFactory.CreateClient();
//var content = new StringContent(postData ?? "");
//var request = new HttpRequestMessage(method, url)
//{
// Content = content
//};
HttpContent httpContent = new StringContent(new { a = 1, b = 2 }.Serialize(), Encoding.UTF8, "application/json");
headers ??= new Dictionary<string, string>();
headers.TryAdd(QuartzAuthorization.Key, QuartzAuthorization.AccessKey);
if (headers != null)
{
foreach (var header in headers)
{
client.DefaultRequestHeaders.Add(header.Key, header.Value);
//request.Headers.Add(header.Key, header.Value);
}
}
try
{
client.Timeout = TimeSpan.FromSeconds(timeOut);
HttpResponseMessage response = null;
if (method == HttpMethod.Post)
{
response = await client.PostAsync(url, httpContent);
}
else
{
response = await client.GetAsync(url);
}
string result;
if (response.StatusCode == HttpStatusCode.OK)
{
result = await response.Content.ReadAsStringAsync();
}
else
{
result = response.Serialize();
}
Console.WriteLine("返回:" + result);
return result;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
QuartzFileHelper.Error($"http请求异常url:{url},{ex.Message + ex.StackTrace}");
return ex.Message;
}
}
}
}