696 lines
28 KiB
C#
696 lines
28 KiB
C#
using HL_FristAidPlatform_DTO;
|
||
using Newtonsoft.Json;
|
||
using Newtonsoft.Json.Linq;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Configuration;
|
||
using System.Data;
|
||
using System.IO;
|
||
using System.Net;
|
||
using System.Net.Http;
|
||
using System.Net.Http.Headers;
|
||
using System.Runtime.Serialization.Json;
|
||
using System.Text.RegularExpressions;
|
||
using System.Web.Script.Serialization;
|
||
|
||
namespace HL_FristAidPlatform_Public
|
||
{
|
||
/// <summary>
|
||
/// HttpClient
|
||
/// 访问实体类
|
||
/// </summary>
|
||
public class HttpClientInstance<T> : Client<T>
|
||
{
|
||
/// <summary>
|
||
/// 急危重症区域管理平台地址
|
||
/// </summary>
|
||
public static string WebApiUrl = ConfigurationManager.AppSettings["WebApiUrl"];
|
||
|
||
/// <summary>
|
||
/// 首辰健康大平台地址
|
||
/// </summary>
|
||
public static string SCJK_WebApiUrl = ConfigurationManager.AppSettings["SCJK_WebApiUrl"];
|
||
|
||
/// <summary>
|
||
/// IP地址
|
||
/// </summary>
|
||
private static string ip = PublicHelp.GetLocalIp();
|
||
|
||
/// <summary>
|
||
/// 重置TokenAPI
|
||
/// </summary>
|
||
private static string resetJWTURL = "/api/admin/T_SYS_User/ResetJWT?jwtStr={0}&deviceIP=" + ip + "";
|
||
|
||
/// <summary>
|
||
/// 刷新token
|
||
/// </summary>
|
||
/// <param name="oldToken"></param>
|
||
/// <returns></returns>
|
||
public static bool ResetJWT(string oldToken)
|
||
{
|
||
Uri urlPath = new Uri(WebApiUrl);
|
||
HttpClient client = new HttpClient
|
||
{
|
||
BaseAddress = urlPath
|
||
};
|
||
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
||
HttpResponseMessage message = client.GetAsync(string.Format(resetJWTURL, oldToken)).Result;
|
||
if (message.IsSuccessStatusCode)
|
||
{
|
||
var itemJson = message.Content.ReadAsStringAsync().Result.Replace("\"", "");
|
||
Information.User.Token = itemJson;
|
||
return true;
|
||
}
|
||
else
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Get 访问方法
|
||
/// 查询
|
||
/// </summary>
|
||
/// <param name="url">方法详细地址</param>
|
||
/// <returns></returns>
|
||
public override DataTable Get(string Url)
|
||
{
|
||
DataTable dataTable = new DataTable();
|
||
try
|
||
{
|
||
Uri urlPath = new Uri(WebApiUrl);
|
||
string token = Information.User.Token;
|
||
HttpClient client = new HttpClient
|
||
{
|
||
BaseAddress = urlPath
|
||
};
|
||
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
||
HttpResponseMessage responseMessage = client.GetAsync(Url).Result;
|
||
if (responseMessage.IsSuccessStatusCode)
|
||
{
|
||
var itemJson = responseMessage.Content.ReadAsStringAsync().Result;
|
||
dataTable = JsonToDataTable(itemJson, out int i);
|
||
return dataTable;
|
||
}
|
||
else
|
||
{
|
||
if (responseMessage.StatusCode.ToString() == "Unauthorized")
|
||
{
|
||
if (ResetJWT(token))
|
||
{
|
||
return Get(Url);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
PublicClass.WriteLog(DateTime.Now.ToString(PublicClass.TimeToString) + responseMessage.RequestMessage + responseMessage.Content.ReadAsStringAsync().Result);//写入一条新log
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("HttpClient", "Get:\r\n" + ex);
|
||
}
|
||
return dataTable;
|
||
}
|
||
|
||
/// <summary>
|
||
/// Get 访问方法
|
||
/// 查询
|
||
/// </summary>
|
||
/// <param name="url">方法详细地址</param>
|
||
/// <returns>返回DataSet</returns>
|
||
public override DataSet GetDataSet(string Url)
|
||
{
|
||
DataSet dataSet = new DataSet();
|
||
try
|
||
{
|
||
Uri urlPath = new Uri(WebApiUrl);
|
||
string token = Information.User.Token;
|
||
HttpClient client = new HttpClient
|
||
{
|
||
BaseAddress = urlPath
|
||
};
|
||
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
||
HttpResponseMessage responseMessage = client.GetAsync(Url).Result;
|
||
if (responseMessage.IsSuccessStatusCode)
|
||
{
|
||
var itemJson = responseMessage.Content.ReadAsStringAsync().Result;
|
||
return dataSet = JsonToDataSet(itemJson);
|
||
}
|
||
else
|
||
{
|
||
if (responseMessage.StatusCode.ToString() == "Unauthorized")
|
||
{
|
||
if (ResetJWT(token))
|
||
{
|
||
return GetDataSet(Url);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
PublicClass.WriteLog(DateTime.Now.ToString(PublicClass.TimeToString) + responseMessage.RequestMessage + responseMessage.Content.ReadAsStringAsync().Result);//写入一条新log
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("HttpClient", "Get:\r\n" + ex);
|
||
}
|
||
return dataSet;
|
||
}
|
||
|
||
/// <summary>
|
||
/// Get 访问方法
|
||
/// 查询
|
||
/// </summary>
|
||
/// <param name="url">方法详细地址</param>
|
||
/// <param name="platform">API链接地址类型</param>
|
||
/// <param name="totalNumber">分页时返回总条数</param>
|
||
/// <returns></returns>
|
||
public override DataTable Get(string Url, Enumerate.Platform platform, out int totalNumber)
|
||
{
|
||
totalNumber = 0;//先赋值为0
|
||
|
||
DataTable dataTable = new DataTable();
|
||
try
|
||
{
|
||
#region 区分请求的地址
|
||
|
||
string ApiUrl = string.Empty;
|
||
switch (platform)
|
||
{
|
||
case Enumerate.Platform.急危重症:
|
||
ApiUrl = WebApiUrl;
|
||
break;
|
||
|
||
case Enumerate.Platform.首辰健康:
|
||
ApiUrl = SCJK_WebApiUrl;
|
||
break;
|
||
|
||
default:
|
||
ApiUrl = WebApiUrl;
|
||
break;
|
||
}
|
||
|
||
#endregion 区分请求的地址
|
||
|
||
Uri urlPath = new Uri(ApiUrl);
|
||
string token = Information.User.Token;
|
||
HttpClient client = new HttpClient
|
||
{
|
||
BaseAddress = urlPath
|
||
};
|
||
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
||
HttpResponseMessage responseMessage = client.GetAsync(Url).Result;
|
||
if (responseMessage.IsSuccessStatusCode)
|
||
{
|
||
var itemJson = responseMessage.Content.ReadAsStringAsync().Result;
|
||
return dataTable = JsonToDataTable(itemJson, out totalNumber);
|
||
}
|
||
else
|
||
{
|
||
if (responseMessage.StatusCode.ToString() == "Unauthorized")
|
||
{
|
||
if (ResetJWT(token))
|
||
{
|
||
return Get(Url);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
PublicClass.WriteLog(DateTime.Now.ToString(PublicClass.TimeToString) + responseMessage.RequestMessage + responseMessage.Content.ReadAsStringAsync().Result);//写入一条新log
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("HttpClient", "Get:\r\n" + ex);
|
||
}
|
||
return dataTable;
|
||
}
|
||
|
||
/// <summary>
|
||
/// Post
|
||
/// </summary>
|
||
/// <param name="url"></param>
|
||
/// <param name="t"></param>
|
||
/// <returns></returns>
|
||
public override ListEntity<T> Post(string url, List<T> list)
|
||
{
|
||
try
|
||
{
|
||
//创建一个处理序列化的DataContractJsonSerializer
|
||
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<T>));
|
||
MemoryStream ms = new MemoryStream();
|
||
//将资料写入MemoryStream
|
||
serializer.WriteObject(ms, list[0]);
|
||
//一定要在这设定Position
|
||
ms.Position = 0;
|
||
string UrlPath = WebApiUrl + url;
|
||
//将MemoryStream转成HttpContent
|
||
HttpContent content = new StreamContent(ms);
|
||
//content.Headers.ContentType = new MediaTypeHeaderValue("application/json") { CharSet = Encoding.UTF8.WebName };
|
||
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
|
||
ListEntity<T> returnT = new ListEntity<T>();
|
||
HttpClient client = new HttpClient();
|
||
//client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0");
|
||
//client.DefaultRequestHeaders.Add("Connection", "Keep-Alive");
|
||
//client.DefaultRequestHeaders.Add("Accept", "*/*");
|
||
string token = Information.User.Token;
|
||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
||
//由HttxpClient发出Post Method
|
||
HttpResponseMessage response = client.PostAsync(UrlPath, content).Result;
|
||
if (response.IsSuccessStatusCode)
|
||
{
|
||
var itemJson = response.Content.ReadAsStringAsync().Result;
|
||
returnT.Success = response.IsSuccessStatusCode;
|
||
returnT.Msg = response.RequestMessage.ToString();
|
||
returnT.DataString = itemJson;
|
||
return returnT;
|
||
}
|
||
else
|
||
{
|
||
if (response.StatusCode.ToString() == "Unauthorized")
|
||
{
|
||
returnT.Msg = "该请求未认证";
|
||
if (ResetJWT(token))
|
||
{
|
||
return Post(url, list);
|
||
}
|
||
}
|
||
else if (response.StatusCode.ToString() == "Forbidden")
|
||
{
|
||
returnT.Msg = "没有权限操作";
|
||
}
|
||
else
|
||
{
|
||
PublicClass.WriteErrorLog("HL_FristAidPlatform_Public", "HttpClientInstance Post:\r\n API地址:" + url + "\r\n错误消息:\r\n" + response.ToString() + "\r\n" + response.Content.ReadAsStringAsync().Result);
|
||
}
|
||
}
|
||
return returnT;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("HttpClientInstance", "Post:\r\n" + ex);
|
||
return null;
|
||
}
|
||
}
|
||
|
||
public override bool ExternalInterfacePost(string url, Dictionary<string, string> list)
|
||
{
|
||
try
|
||
{
|
||
string UrlPath = WebApiUrl + url;
|
||
//将MemoryStream转成HttpContent
|
||
HttpClient client = new HttpClient();
|
||
var postContent = new MultipartFormDataContent();
|
||
string boundary = string.Format("--{0}", DateTime.Now.Ticks.ToString("x"));
|
||
postContent.Headers.Add("ContentType", $"multipart/form-data,boundary={boundary}");
|
||
foreach (var item in list.Keys)
|
||
{
|
||
postContent.Add(new StringContent(list[item].ToString()), item);
|
||
}
|
||
//由HttxpClient发出Post Method
|
||
HttpResponseMessage response = client.PostAsync(UrlPath, postContent).Result;
|
||
if (response.IsSuccessStatusCode)
|
||
{
|
||
var itemJson = response.Content.ReadAsStringAsync().Result;
|
||
return Convert.ToBoolean(itemJson.ToString());
|
||
}
|
||
else
|
||
{
|
||
PublicClass.WriteErrorLog("HL_FristAidPlatform_Public", "HttpClientInstance Post:\r\n API地址:" + url + "\r\n错误消息:\r\n" + response.ToString() + "\r\n" + response.Content.ReadAsStringAsync().Result);
|
||
return false;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("HttpClientInstance", "Post:\r\n" + ex);
|
||
return false;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Post请求并返回更新后的数据
|
||
/// </summary>
|
||
/// <param name="url"></param>
|
||
/// <param name="t"></param>
|
||
/// <returns></returns>
|
||
public override ListEntity<T> PostReturnTable(string url, List<T> list)
|
||
{
|
||
try
|
||
{
|
||
//创建一个处理序列化的DataContractJsonSerializer
|
||
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
|
||
MemoryStream ms = new MemoryStream();
|
||
|
||
//将资料写入MemoryStream
|
||
serializer.WriteObject(ms, list[0]);
|
||
|
||
//一定要在这设定Position
|
||
ms.Position = 0;
|
||
string UrlPath = WebApiUrl + url;
|
||
string token = Information.User.Token;
|
||
//将MemoryStream转成HttpContent
|
||
HttpContent content = new StreamContent(ms);
|
||
content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
|
||
|
||
ListEntity<T> returnT = new ListEntity<T>();
|
||
HttpClient client = new HttpClient();
|
||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
||
|
||
//由HttpClient发出Post Method
|
||
HttpResponseMessage response = client.PostAsync(UrlPath, content).Result;
|
||
|
||
if (response.IsSuccessStatusCode)
|
||
{
|
||
var itemJson = response.Content.ReadAsStringAsync().Result;
|
||
returnT.Success = response.IsSuccessStatusCode;
|
||
returnT.Msg = response.RequestMessage.ToString();
|
||
returnT.DataString = itemJson;
|
||
returnT.DataTable = JsonToDataTable(itemJson, out int i);
|
||
return returnT;
|
||
}
|
||
else
|
||
{
|
||
if (response.StatusCode.ToString() == "Unauthorized")
|
||
{
|
||
if (ResetJWT(token))
|
||
{
|
||
return PostReturnTable(url, list);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
PublicClass.WriteErrorLog("HL_FristAidPlatform_Public", "HttpClientInstance Post:\r\n API地址:" + url + "\r\n错误消息:\r\n" + response.ToString() + "\r\n" + response.Content.ReadAsStringAsync().Result);
|
||
}
|
||
}
|
||
return returnT;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("HttpClientInstance", "PostReturnTable:\r\n" + ex);
|
||
return null;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 删
|
||
/// </summary>
|
||
/// <param name="url">地址</param>
|
||
/// <returns></returns>
|
||
public override bool Delete(string url)
|
||
{
|
||
try
|
||
{
|
||
Uri urlPath = new Uri(WebApiUrl);
|
||
HttpClient client = new HttpClient();
|
||
client.BaseAddress = urlPath;
|
||
string token = Information.User.Token;
|
||
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
||
HttpResponseMessage responseMessage = client.DeleteAsync(url).Result;
|
||
if (responseMessage.IsSuccessStatusCode)
|
||
{
|
||
return true;
|
||
}
|
||
else
|
||
{
|
||
if (responseMessage.StatusCode.ToString() == "Unauthorized")
|
||
{
|
||
if (ResetJWT(token))
|
||
{
|
||
return Delete(url);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("HttpClientInstance", "Delete:\r\n" + ex);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
/// <summary>
|
||
/// Json转DataTable
|
||
/// </summary>
|
||
/// <param name="strJson">Json字符</param>
|
||
/// <param name="totalNumber">分页时返回总条数</param>
|
||
/// <returns></returns>
|
||
private static DataTable JsonToDataTable(string strJson, out int totalNumber)
|
||
{
|
||
int PageCount = 0;//当前页的总条数
|
||
totalNumber = 0;//先赋值为0
|
||
|
||
DataTable tb = new DataTable();
|
||
try
|
||
{
|
||
#region 新版本
|
||
|
||
JObject jobject = JObject.Parse(strJson);
|
||
|
||
//判断是否存在对应的键值
|
||
if (jobject.Property("TotalNumber") != null)
|
||
{
|
||
int.TryParse(jobject["TotalNumber"].ToString(), out totalNumber);
|
||
}
|
||
if (jobject.Property("totalNumber") != null)
|
||
{
|
||
int.TryParse(jobject["totalNumber"].ToString(), out totalNumber);
|
||
}
|
||
|
||
//判断是否存在对应的键值
|
||
if (jobject.Property("PageCount") != null)
|
||
{
|
||
int.TryParse(jobject["PageCount"].ToString(), out PageCount);
|
||
}
|
||
if (jobject.Property("pageCount") != null)
|
||
{
|
||
int.TryParse(jobject["pageCount"].ToString(), out PageCount);
|
||
}
|
||
|
||
if (totalNumber > 0)
|
||
{
|
||
//创建表
|
||
string dataJson = string.Empty;
|
||
if (jobject.Property("Data") != null)
|
||
{
|
||
var dataObj = jobject["Data"][0];
|
||
dataJson = Regex.Replace(dataObj.ToString(), @"\s", " ");//空白字符替换
|
||
}
|
||
if (jobject.Property("data") != null)
|
||
{
|
||
var dataObj = jobject["data"][0];
|
||
dataJson = Regex.Replace(dataObj.ToString(), @"\s", " ");//空白字符替换
|
||
}
|
||
|
||
JObject dataobj = JObject.Parse(dataJson);
|
||
|
||
tb.TableName = "";
|
||
foreach (var item in dataobj)
|
||
{
|
||
DataColumn dc = new DataColumn(item.Key, Type.GetType("System.String"));
|
||
tb.Columns.Add(dc);
|
||
}
|
||
|
||
if (PageCount == 0)
|
||
PageCount = totalNumber;
|
||
|
||
for (int i = 0; i < PageCount; i++)
|
||
{
|
||
string dataJson1 = string.Empty;
|
||
if (jobject.Property("Data") != null)
|
||
{
|
||
var DataObj1 = jobject["Data"][i];
|
||
dataJson1 = Regex.Replace(DataObj1.ToString(), @"\s", " ");
|
||
}
|
||
if (jobject.Property("data") != null)
|
||
{
|
||
var DataObj1 = jobject["data"][i];
|
||
dataJson1 = Regex.Replace(DataObj1.ToString(), @"\s", " ");
|
||
}
|
||
|
||
JObject dataobj1 = JObject.Parse(dataJson1);
|
||
DataRow dr = tb.NewRow();
|
||
foreach (var item in dataobj1)
|
||
{
|
||
dr[item.Key] = item.Value;
|
||
}
|
||
tb.Rows.Add(dr);
|
||
}
|
||
}
|
||
|
||
#endregion 新版本
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("HttpClientInstance", "JsonToDataTable:\r\n" + ex);
|
||
}
|
||
return tb;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 将JSON解析成DataSet只限标准的JSON数据
|
||
/// 例如:Json={t1:[{name:'数据name',type:'数据type'}]}
|
||
/// 或 Json={t1:[{name:'数据name',type:'数据type'}],t2:[{id:'数据id',gx:'数据gx',val:'数据val'}]}
|
||
/// </summary>
|
||
/// <param name="Json">Json字符串</param>
|
||
/// <returns>DataSet</returns>
|
||
public static DataSet JsonToDataSet(string Json)
|
||
{
|
||
DataSet ds = new DataSet();
|
||
try
|
||
{
|
||
JsonReader reader = new JsonTextReader(new StringReader(Json));
|
||
while (reader.Read())
|
||
{
|
||
Json = reader.Value.ToString();
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(Json))
|
||
{
|
||
JavaScriptSerializer JSS = new JavaScriptSerializer();
|
||
object obj = JSS.DeserializeObject(Json);
|
||
Dictionary<string, object> datajson = (Dictionary<string, object>)obj;
|
||
foreach (var item in datajson)
|
||
{
|
||
DataTable dt = new DataTable(item.Key);
|
||
object[] rows = (object[])item.Value;
|
||
foreach (var row in rows)
|
||
{
|
||
Dictionary<string, object> val = (Dictionary<string, object>)row;
|
||
DataRow dr = dt.NewRow();
|
||
foreach (KeyValuePair<string, object> sss in val)
|
||
{
|
||
if (!dt.Columns.Contains(sss.Key))
|
||
{
|
||
dt.Columns.Add(sss.Key.ToString());
|
||
dr[sss.Key] = sss.Value;
|
||
}
|
||
else
|
||
dr[sss.Key] = sss.Value;
|
||
}
|
||
dt.Rows.Add(dr);
|
||
}
|
||
ds.Tables.Add(dt);
|
||
}
|
||
}
|
||
return ds;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("JsonToDataSet", "JsonToDataSet:\r\n" + ex);
|
||
}
|
||
return ds;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 批量 (传递json格式数据)
|
||
/// </summary>
|
||
/// <param name="parameterData"></param>
|
||
/// <param name="serviceUrl"></param>
|
||
/// <returns></returns>
|
||
public override ListEntity<T> BatchPost(string parameterData, string serviceUrl)
|
||
{
|
||
try
|
||
{
|
||
string UrlPath = WebApiUrl + serviceUrl;
|
||
HttpWebRequest hwr = (HttpWebRequest)WebRequest.Create(UrlPath);
|
||
HttpContent content = new StringContent(parameterData);
|
||
content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
|
||
|
||
ListEntity<T> returnT = new ListEntity<T>();
|
||
HttpClient client = new HttpClient();
|
||
string token = Information.User.Token;
|
||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
||
|
||
//由HttpClient发出Post Method
|
||
HttpResponseMessage response = client.PostAsync(UrlPath, content).Result;
|
||
var itemJson = response.Content.ReadAsStringAsync().Result;
|
||
if (response.IsSuccessStatusCode)
|
||
{
|
||
returnT.Success = response.IsSuccessStatusCode;
|
||
returnT.Msg = response.RequestMessage.ToString();
|
||
returnT.DataString = itemJson;
|
||
return returnT;
|
||
}
|
||
else
|
||
{
|
||
if (response.StatusCode.ToString() == "Unauthorized")
|
||
{
|
||
if (ResetJWT(token))
|
||
{
|
||
return BatchPost(parameterData, serviceUrl);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
PublicClass.WriteErrorLog("HL_FristAidPlatform_Public", "HttpClientInstance Post:\r\n API地址:" + serviceUrl + "\r\n错误消息:\r\n" + response.ToString() + "\r\n" + itemJson);
|
||
return null;
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("HttpClientInstance", "Post:\r\n" + ex);
|
||
}
|
||
return null;
|
||
}
|
||
|
||
public override ListEntity<T> JsonPost(string parameterData, string serviceUrl)
|
||
{
|
||
try
|
||
{
|
||
string UrlPath = WebApiUrl + serviceUrl;
|
||
HttpWebRequest hwr = (HttpWebRequest)WebRequest.Create(UrlPath);
|
||
HttpContent content = new StringContent(parameterData);
|
||
content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
|
||
|
||
ListEntity<T> returnT = new ListEntity<T>();
|
||
HttpClient client = new HttpClient();
|
||
string token = Information.User.Token;
|
||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
||
|
||
//由HttpClient发出Post Method
|
||
HttpResponseMessage response = client.PostAsync(UrlPath, content).Result;
|
||
var itemJson = response.Content.ReadAsStringAsync().Result;
|
||
if (response.IsSuccessStatusCode)
|
||
{
|
||
returnT.Success = response.IsSuccessStatusCode;
|
||
returnT.Msg = response.RequestMessage.ToString();
|
||
returnT.DataString = itemJson;
|
||
return returnT;
|
||
}
|
||
else
|
||
{
|
||
if (response.StatusCode.ToString() == "Unauthorized")
|
||
{
|
||
if (ResetJWT(token))
|
||
{
|
||
return BatchPost(parameterData, serviceUrl);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
PublicClass.WriteErrorLog("HL_FristAidPlatform_Public", "HttpClientInstance Post:\r\n API地址:" + serviceUrl + "\r\n错误消息:\r\n" + response.ToString() + "\r\n" + itemJson);
|
||
return null;
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
PublicClass.WriteErrorLog("HttpClientInstance", "Post:\r\n" + ex);
|
||
}
|
||
return null;
|
||
}
|
||
}
|
||
} |