using NPOI.SS.Formula.Functions; using NPOI.SS.UserModel; using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Security.Cryptography; using System.Text; using System.Windows.Forms; using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel; namespace FileAnalysis { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Analysis_Click(object sender, EventArgs e) { string url = "https://openapi.seewo.com/seewo-study-machine/device-manager/check-activate"; HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(url); webrequest.Method = "POST"; webrequest.Timeout = 1000; webrequest.ContentType = "application/x-www-form-urlencoded"; string secret = "QmxcghPaupQjjSOTV3NJLkPeyycEBuYk"; System.Collections.Hashtable pars = new System.Collections.Hashtable(); string sign = "x-sw-app-id3a1252d81dff4fd3b1ece153b3a9cb71x-sw-req-path/seewo-study-machine/device-manager/check-activatex-sw-version2"; webrequest.Headers.Add("x-sw-app-id", "3a1252d81dff4fd3b1ece153b3a9cb71"); //必填 webrequest.Headers.Add("x-sw-sign", GETMD5(secret + sign + secret));//必填 webrequest.Headers.Add("x-sw-req-path", "/seewo-study-machine/device-manager/check-activate");//必填 webrequest.Headers.Add("x-sw-version", "2");//必填 //webrequest.Headers.Add("x-sw-sign-type", ""); //webrequest.Headers.Add("x-sw-sign-headers", ""); //webrequest.Headers.Add("x-sw-timestamp", ""); //webrequest.Headers.Add("x-sw-content-md5", "");c pars.Add("sn", "{sn:123}"); string buffer = ""; //发送POST数据 if (!(pars == null || pars.Count == 0)) { foreach (string key in pars.Keys) { buffer = buffer + "&" + key + "=" + pars[key].ToString(); } byte[] data = Encoding.UTF8.GetBytes(buffer); using (Stream stream = webrequest.GetRequestStream()) { stream.Write(data, 0, data.Length); } } string[] values = webrequest.Headers.GetValues("Content-Type"); WebResponse myResponse = webrequest.GetResponse(); using (Stream resStream = myResponse.GetResponseStream())//得到回写的流 { StreamReader newReader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); string Content = newReader.ReadToEnd(); ReturnData.Text = Content; Dictionary dic = new Dictionary(); //dic = BaseUtil.ToDictionary(Content); //if (!dic.ContainsKey("erpaccount")) //{ // oMsg = dic["reason"].ToString(); // return false; //} newReader.Close(); } } private string GETMD5(string password) { //初始化MD5对象 MD5 md5 = MD5.Create(); //将源字符串转化为byte数组 Byte[] soucebyte = Encoding.Default.GetBytes(password); //soucebyte转化为mf5的byte数组 Byte[] md5bytes = md5.ComputeHash(soucebyte); //将md5的byte数组再转化为MD5数组 StringBuilder sb = new StringBuilder(); foreach (Byte b in md5bytes) { //x表示16进制,2表示2位 sb.Append(b.ToString("x2")); } return sb.ToString(); } public static int[] GetDecimalData(string HexStr, int[] DataSize, int[] NotShow) { List ReturnData = new List(); try { //去除前面的指令字符和数据长度字符 HexStr = HexStr.Replace(":", ""); if (HexStr != "") { int ValueDataSize = Convert.ToInt32("0x" + (HexStr.Substring(4, 2)), 16) * 2; string RealData = HexStr.Substring(6); RealData = RealData.Substring(0, ValueDataSize); int SubIndex = 0; for (int i = 0; i < DataSize.Length; i = i + 1) { if (SubIndex + DataSize[i] < RealData.Length) { bool notshow = false; for (int j = 0; j < NotShow.Length; j++) { if (i == NotShow[j]) notshow = true; } if (notshow) { SubIndex += DataSize[i]; continue; } if (DataSize[i] == 8) { Console.WriteLine("0x" + (RealData.Substring(SubIndex, DataSize[i]).Substring(4, 4)) + (RealData.Substring(SubIndex, DataSize[i]).Substring(0, 4))); ReturnData.Add(Convert.ToInt32("0x" + (RealData.Substring(SubIndex, DataSize[i]).Substring(4, 4)) + (RealData.Substring(SubIndex, DataSize[i]).Substring(0, 4)), 16)); } else if (DataSize[i] == 4) { Console.WriteLine("0x" + (RealData.Substring(SubIndex, DataSize[i]))); ReturnData.Add(Convert.ToInt32("0x" + (RealData.Substring(SubIndex, DataSize[i])), 16)); } } SubIndex += DataSize[i]; } } } catch (Exception ex) { Console.WriteLine(ex.Message); } return ReturnData.ToArray(); } private void Form1_Load(object sender, EventArgs e) { } } }