|
@@ -1,6 +1,13 @@
|
|
|
-using System;
|
|
|
+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
|
|
|
{
|
|
@@ -14,12 +21,78 @@ namespace FileAnalysis
|
|
|
|
|
|
private void Analysis_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
- Result.Clear();
|
|
|
- int[] list = GetDecimalData(ReturnData.Text, new int[] { 8, 8, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4 }, new int[] { 6 });
|
|
|
- for (int i = 0; i < list.Length; i++)
|
|
|
+ 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))
|
|
|
{
|
|
|
- Result.AppendText(list[i] + "\n");
|
|
|
+ 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<string, object> dic = new Dictionary<string, object>();
|
|
|
+ //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)
|