using Newtonsoft.Json.Linq;
using System;
using System.Data;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace HL_FristAidPlatform_DynamicElectrocardiogram
{
public partial class Form_ECGDW : Form
{
private Uri urlPath = new Uri("http://ecg.datawe.net/");
private DataSet DataSet;
public Form_ECGDW()
{
InitializeComponent();
}
private void simpleButton1_Click(object sender, EventArgs e)
{
string url = "ecgConsole/device-login.htm?userName=tangdx2&passWord=123456";
DataSet = Get(url);
}
public DataSet Get(string Url)
{
DataSet dataSet = new DataSet();
try
{
HttpClient client = new HttpClient
{
BaseAddress = urlPath
};
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));
//client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
HttpResponseMessage responseMessage = client.GetAsync(Url).Result;
if (responseMessage.IsSuccessStatusCode)
{
var itemJson = responseMessage.Content.ReadAsStringAsync().Result;
dataSet = JsonToDataTable(itemJson);
return dataSet;
}
//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 dataSet;
}
///
/// Json转DataTable
///
/// Json字符
/// 分页时返回总条数
///
private static DataSet JsonToDataTable(string strJson)
{
DataSet ds = new DataSet();
try
{
DataTable tb = new DataTable();
JObject jobject = JObject.Parse(strJson);
tb.TableName = "User";
DataRow dataRow = tb.NewRow();
string dataJson = string.Empty;
string dataInfoVo = string.Empty;
foreach (var item in jobject)
{
if (item.Key == jobject.Property("wzId").Name)
{
DataColumn dc = new DataColumn(item.Key, Type.GetType("System.String"));
tb.Columns.Add(dc);
dataRow["wzId"] = Regex.Replace(jobject["wzId"].ToString(), @"\s", " ");//空白字符替换
}
if (item.Key == jobject.Property("hospitalName").Name)
{
DataColumn dc = new DataColumn(item.Key, Type.GetType("System.String"));
tb.Columns.Add(dc);
dataRow["hospitalName"] = Regex.Replace(jobject["hospitalName"].ToString(), @"\s", " ");//空白字符替换
}
if (item.Key == jobject.Property("dataAddress").Name)
{
DataColumn dc = new DataColumn(item.Key, Type.GetType("System.String"));
tb.Columns.Add(dc);
dataRow["dataAddress"] = Regex.Replace(jobject["dataAddress"].ToString(), @"\s", " ");//空白字符替换
}
if (item.Key == jobject.Property("earlyWarning").Name)
{
DataColumn dc = new DataColumn(item.Key, Type.GetType("System.String"));
tb.Columns.Add(dc);
dataRow["earlyWarning"] = Regex.Replace(jobject["earlyWarning"].ToString(), @"\s", " ");//空白字符替换
}
if (item.Key == jobject.Property("token").Name)
{
DataColumn dc = new DataColumn(item.Key, Type.GetType("System.String"));
tb.Columns.Add(dc);
dataRow["token"] = Regex.Replace(jobject["token"].ToString(), @"\s", " ");//空白字符替换
}
if (item.Key == jobject.Property("doctorVo").Name)
{
var dataObj = jobject["doctorVo"][0];
dataJson = Regex.Replace(dataObj.ToString(), @"\s", " ");//空白字符替换
}
if (item.Key == jobject.Property("setInfoVo").Name)
{
var dataObj = jobject["setInfoVo"][0];
dataInfoVo = Regex.Replace(dataObj.ToString(), @"\s", " ");//空白字符替换
}
}
tb.Rows.Add(dataRow);
DataTable doctorVo = new DataTable();
doctorVo.TableName = "DoctorVo";
JObject dataoVo = JObject.Parse(dataJson);
foreach (var item in dataoVo)
{
DataColumn dc = new DataColumn(item.Key, Type.GetType("System.String"));
doctorVo.Columns.Add(dc);
}
string data = string.Empty;
for (int i = 0; i < ((JContainer)jobject["doctorVo"]).Count; i++)
{
var doctor = jobject["doctorVo"][i];
data = Regex.Replace(doctor.ToString(), @"\s", " ");//空白字符替换
JObject dataobj1 = JObject.Parse(data);
DataRow doctorVoDataRow = doctorVo.NewRow();
foreach (var item in dataobj1)
{
doctorVoDataRow[item.Key] = item.Value;
}
doctorVo.Rows.Add(doctorVoDataRow);
}
DataTable setInfoVo = new DataTable();
setInfoVo.TableName = "SetInfoVo";
JObject infoVo = JObject.Parse(dataInfoVo);
foreach (var item in infoVo)
{
if (item.Key != "bluetoothAddress")
{
DataColumn dc = new DataColumn(item.Key, Type.GetType("System.String"));
setInfoVo.Columns.Add(dc);
}
}
string info = string.Empty;
for (int i = 0; i < ((JContainer)jobject["setInfoVo"]).Count; i++)
{
var doctor = jobject["setInfoVo"][i];
info = Regex.Replace(doctor.ToString(), @"\s", " ");//空白字符替换
JObject dataobj1 = JObject.Parse(info);
DataRow doctorVoDataRow = setInfoVo.NewRow();
foreach (var item in dataobj1)
{
if (item.Key != "bluetoothAddress")
{
doctorVoDataRow[item.Key] = item.Value;
}
}
setInfoVo.Rows.Add(doctorVoDataRow);
}
ds.Tables.Add(tb);
ds.Tables.Add(doctorVo);
ds.Tables.Add(setInfoVo);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return ds;
}
private void simpleButton2_Click(object sender, EventArgs e)
{
string url = "/ecgConsole/sheet/create.htm";
}
private void simpleButton3_Click(object sender, EventArgs e)
{
string token=DataSet.Tables["User"].Rows[0]["token"].ToString();
//string url = string.Format("/ecgConsole/sheet/ecgreports.htm?token={0}&orgCode={1}&hospitalCode={2}", token,);
}
//public override ListEntity Post(string url, List list)
//{
// try
// {
// //创建一个处理序列化的DataContractJsonSerializer
// DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List));
// 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 System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
// ListEntity returnT = new ListEntity();
// 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;
// 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")
// // {
// // if (ResetJWT(token))
// // {
// // return Post(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", "Post:\r\n" + ex);
// return null;
// }
//}
}
}