ChengDa_English/SGGL/BLL/ZHGL/DataSync/ServerService.cs

95 lines
3.8 KiB
C#

using Model;
using Newtonsoft.Json;
using RestSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
namespace BLL
{
public static class ServerService
{
public static Model.TokenItem GetCNCECToken()
{
string CNCECPath = SysConstSetService.CNCECPath;
string baseurl = CNCECPath + "/api/Common/GetToken";
var client = new RestClient(baseurl);
client.Timeout = -1;
var request = new RestRequest(Method.POST);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var thisUnit = CommonService.GetIsThisUnit();
request.AddParameter("UnitName", thisUnit.UnitName);
request.AddParameter("CollCropCode", thisUnit.CollCropCode);
//request.AddJsonBody(JsonBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var responeData = JsonConvert.DeserializeObject<Model.ResponeData>(response.Content.ToString());
TokenItem tokenItem = new TokenItem();
if (responeData.code == 1 && string.IsNullOrEmpty(responeData.message))
{
var token = JsonConvert.DeserializeObject<Model.TokenItem>(responeData.data.ToString());
tokenItem.Token = token.Token.ToString();
tokenItem.ExpiryTime = token.ExpiryTime.ToString();
SysConstSetService.SetToken(tokenItem.Token);
SysConstSetService.SetTokenExpirationTime(tokenItem.ExpiryTime);
}
return tokenItem;
}
public static Model.ReturnData PushCNCEC(string JsonBody, string apiurl)
{
Model.ReturnData responeData = new Model.ReturnData();
string CNCECPath = SysConstSetService.CNCECPath;
if (string.IsNullOrEmpty(CNCECPath))
{
responeData.code = 0;
responeData.message = "接口地址为空,请配置!";
return responeData;
}
string baseurl = CNCECPath + apiurl;
var client = new RestClient(baseurl);
client.Timeout = -1;
var request = new RestRequest(Method.POST);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var tokenItem = GetToken();
request.AddHeader("token", tokenItem.Token);
request.AddJsonBody(JsonBody);
IRestResponse response = client.Execute(request);
APICommonService.SaveSysHttpLog("api_Out", baseurl, response.Content);
var returnData = JsonConvert.DeserializeObject<Model.ResponeData>(response.Content.ToString());
if (returnData.code == 0)
{
responeData.code = 0;
responeData.message = returnData.message;
return responeData;
}
return responeData;
}
public static Model.TokenItem GetToken()
{
Model.TokenItem tokenItem = new Model.TokenItem();
tokenItem.Token = BLL.SysConstSetService.CNCECToken;
tokenItem.ExpiryTime = BLL.SysConstSetService.CNCECTTokenExTime;
if (string.IsNullOrEmpty(tokenItem.Token) || string.IsNullOrEmpty(tokenItem.ExpiryTime))
{
//DateTime.Parse(SysConstSetService.CNCECTTokenExTime).AddMinutes(-10) > DateTime.Now
tokenItem = GetCNCECToken();
}
else if (DateTime.Parse(SysConstSetService.CNCECTTokenExTime).AddMinutes(-10) < DateTime.Now)
{
tokenItem = GetCNCECToken();
}
return tokenItem;
}
}
}