using Estsh.Client.Common.Util;
using Estsh.Core.Model.Result;
using Microsoft.Extensions.DependencyInjection;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
namespace Estsh.Client.Common.HttpClientUtil
{
public class HttpClientHelper
{
///
/// 服务
///
private static IServiceProvider serviceProvider = null;
private static HttpClient client = null;
private readonly static string encryptKey = "estsh.mes.selectupdate";
///
/// 初始化服务,没给服务对象就自己创建
///
/// 如果是asp.net可以直接抛过来ConfigureServices的services
public static void InitService(IServiceProvider provider,string httpClientName)
{
ArgumentNullException.ThrowIfNull(provider, nameof(provider));
serviceProvider = provider;
client = GetHttpClientFactory().CreateClient(httpClientName);
}
///
/// 得到IHttpClientFactory的对象
///
///
public static IHttpClientFactory GetHttpClientFactory()
{
return serviceProvider.GetService();
}
public static HttpClient GetHttpClient()
{
return client;
}
public int Execute(string cmd, Dictionary? Params = null)
{
RequestBody requestBody = new RequestBody();
requestBody.SqlString = SecurityEncDecrypt.EncryptDES(cmd, encryptKey);
if (Params == null)
{
requestBody.Params = new Dictionary();
}
else
{
requestBody.Params = Params;
}
string retust = Post("DataHandle/Execute", requestBody);
return JsonConvert.DeserializeObject(retust);
}
public List GetEntityList(string cmd, Dictionary? Params = null)
{
RequestBody requestBody = new RequestBody();
requestBody.SqlString = SecurityEncDecrypt.EncryptDES(cmd, encryptKey);
if (Params == null)
{
requestBody.Params = new Dictionary();
}
else
{
requestBody.Params = Params;
}
string retust = Post("DataHandle/GetEntityList", requestBody);
return JsonConvert.DeserializeObject>(retust) ;
}
public object GetScalar(string cmd, Dictionary? Params = null)
{
RequestBody requestBody = new RequestBody();
requestBody.SqlString = SecurityEncDecrypt.EncryptDES(cmd, encryptKey);
if (Params == null)
{
requestBody.Params = new Dictionary();
}
else
{
requestBody.Params = Params;
}
string retust = Post("DataHandle/GetScalar", requestBody);
return JsonConvert.DeserializeObject