using Estsh.Client.Common.Util;
using Estsh.Core.Model.Result;
using Microsoft.Extensions.DependencyInjection;
using Newtonsoft.Json;
using System;
using System.Collections;
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;
///
/// httpClient请求类
///
private static HttpClient client;
///
/// DES加密Key
///
private readonly static string encryptKey = "estsh.mes.selectupdate";
///
/// 登录用户ID
///
public int userId { get; set; }
///
/// 登录用户账号
///
public string userNo { get; set; }
///
/// 初始化服务和httpClient
///
///
///
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();
}
///
/// 获得HttpClient
///
///
public static HttpClient GetHttpClient()
{
return client;
}
#region 通用的sql执行方法
///
/// 执行sql
///
///
///
///
public int Execute(string cmd, Dictionary? Params = null)
{
RequestBody requestBody = new RequestBody();
requestBody.cmd = SecurityEncDecrypt.EncryptDES(cmd, encryptKey);
requestBody.Params = Params;
string retust = Post("DataHandle/Execute", requestBody);
return JsonConvert.DeserializeObject(retust);
}
///
/// 查询sql,返回列表
///
///
///
///
public List GetEntityList(string cmd, Dictionary? Params = null)
{
RequestBody requestBody = new RequestBody();
requestBody.cmd = SecurityEncDecrypt.EncryptDES(cmd, encryptKey);
requestBody.Params = Params;
string retust = Post("DataHandle/GetEntityList", requestBody);
return JsonConvert.DeserializeObject>(retust) ;
}
///
/// 执行存储过程
///
///
///
/// 存储过程出参
///
public Hashtable ExecuteSotreProcedure(string cmd, Dictionary? Params = null, Dictionary? OutParams = null)
{
RequestBody requestBody = new RequestBody();
requestBody.cmd = SecurityEncDecrypt.EncryptDES(cmd, encryptKey);
requestBody.Params = Params;
requestBody.OutParams = OutParams;
string retust = Post("DataHandle/ExecuteSotreProcedure", requestBody);
return JsonConvert.DeserializeObject(retust);
}
///
/// 获取单个值
///
///
///
///
public object GetScalar(string cmd, Dictionary? Params = null)
{
RequestBody requestBody = new RequestBody();
requestBody.cmd = SecurityEncDecrypt.EncryptDES(cmd, encryptKey);
requestBody.Params = Params;
string retust = Post("DataHandle/GetScalar", requestBody);
return JsonConvert.DeserializeObject