| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- 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<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)
- {
- List<int> ReturnData = new List<int>();
- 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)
- {
- }
- }
- }
|