using DS.Module.Core;
using DS.Module.Core.Extensions;
using Newtonsoft.Json;
using NLog;
namespace DS.Module.HkOpenApi;
public class HttpRequestService:IHttpRequestService
{
private readonly IServiceProvider _serviceProvider;
// private readonly ISqlSugarClient db;
// private readonly IUser user;
private readonly string ip;
private readonly int port;
private readonly string accessKey;
private readonly string accessSecret;
static readonly Logger Logger = LogManager.GetCurrentClassLogger();
///
/// 构造函数
///
///
public HttpRequestService(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
// db = _serviceProvider.GetRequiredService();
// user = _serviceProvider.GetRequiredService();
ip = AppSetting.app(new string[] { "HKOpenApi", "IP" }).ObjToString();
port = AppSetting.app(new string[] { "HKOpenApi", "Port" }).ToInt();
accessKey = AppSetting.app(new string[] { "HKOpenApi", "AccessKey" }).ObjToString();
accessSecret = AppSetting.app(new string[] { "HKOpenApi", "AccessSecret" }).ObjToString();
// 设置平台信息参数:合作方APPKey、合作方APPSecret、平台IP、平台端口、以及是否适用HTTPS协议
// 只要平台信息参数一致,多个请求只需设置一次参数
// HttpUtillib.SetPlatformInfo(accessKey, accessSecret, ip, port, true);
}
public HKDataResult HKHttpPost(HKPostData model)
{
// 只要平台信息参数一致,多个请求只需设置一次参数
HttpUtillib.SetPlatformInfo(accessKey, accessSecret, ip, port, true);
HKDataResult res = new HKDataResult();
// 发起POST请求,超时时间15秒,返回响应字节数组
string result = HttpUtillib.HttpPost(model.Url, model.Data, 15);
if (null == result)
{
// 请求失败
// Console.WriteLine("/artemis/api/resource/v1/cameras/indexCode: POST fail");
}
else
{
res = JsonConvert.DeserializeObject(result);
// Console.WriteLine(System.Text.Encoding.UTF8.GetString(result));
}
return res;
}
}