示例#1
0
        public List <ExamModel> SearchReExamDetail(string viewState, string year, string semester)
        {
            try
            {
                string         post         = url_code + "XsBkKsCx.aspx?" + string.Format("xh={0}&xm={1}&gnmkdm=N121618", HttpUtility.UrlEncode(username), HttpUtility.UrlEncode(name));
                string         postdata     = string.Format("__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE={0}&xnd={1}&xqd={2}", HttpUtility.UrlEncode(viewState), HttpUtility.UrlEncode(year), HttpUtility.UrlEncode(semester));
                byte[]         postdatabyte = Encoding.GetEncoding("GB2312").GetBytes(postdata);
                HttpWebRequest request      = (HttpWebRequest)WebRequest.Create(post);
                request.ServicePoint.Expect100Continue = false;
                request.Method = "POST";
                request.Headers.Add("Cache-Control", "max-age=0");
                request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36";
                request.Accept    = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8";
                request.Headers.Add("Accept-Encoding", "gzip, deflate");
                request.Headers.Add("Accept-Language", "zh-CN,zh;q=0.8");
                request.Referer       = post;
                request.ContentLength = postdatabyte.Length;
                request.KeepAlive     = true;
                request.ContentType   = "application/x-www-form-urlencoded";
                request.Headers.Add("Upgrade-Insecure-Requests", "1");
                request.CookieContainer   = cookie;
                request.AllowAutoRedirect = false;
                using (Stream stream = request.GetRequestStream())
                {
                    stream.Write(postdatabyte, 0, postdatabyte.Length);
                }
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                string          str      = string.Empty;
                bool            gzip     = string.Equals(response.Headers["Vary"], "Accept-Encoding", StringComparison.OrdinalIgnoreCase);
                str = DecompressGzip(response.GetResponseStream(), gzip);
                response.Close();
                if (string.IsNullOrWhiteSpace(str) || !str.Contains("__VIEWSTATE"))
                {
                    return(null);
                }

                List <string> tab = GetReg("<table", "</table>", str);
                if (tab.Count <= 0)
                {
                    return(null);
                }
                List <string>    trs  = GetReg("<tr", "</tr>", tab[0]);
                List <ExamModel> list = new List <ExamModel>();
                foreach (string tr in trs.Skip(1))
                {
                    List <string> tds   = GetReg("<td", "</td>", tr);
                    ExamModel     model = new ExamModel();
                    model.Number    = HttpUtility.HtmlDecode(GetContent(tds[0]));
                    model.ClassName = HttpUtility.HtmlDecode(GetContent(tds[1]));
                    model.Name      = HttpUtility.HtmlDecode(GetContent(tds[2]));
                    model.Date      = HttpUtility.HtmlDecode(GetContent(tds[3]));
                    model.Area      = HttpUtility.HtmlDecode(GetContent(tds[4]));
                    model.Site      = HttpUtility.HtmlDecode(GetContent(tds[5]));
                    model.Type      = HttpUtility.HtmlDecode(GetContent(tds[6]));
                    list.Add(model);
                }
                return(list);
            }
            catch (Exception ex)
            {
                LogUtils.Write(ex);
                return(null);
            }
        }
示例#2
0
 private List <GradeModel> GetGradeDetail(string viewState)
 {
     try
     {
         string         post         = url_code + "xscj_gc.aspx?" + string.Format("xh={0}&xm={1}&gnmkdm=N121605", HttpUtility.UrlEncode(username), HttpUtility.UrlEncode(name));
         string         postdata     = string.Format("__VIEWSTATE={0}&ddlXN=&ddlXQ=&Button2=%D4%DA%D0%A3%D1%A7%CF%B0%B3%C9%BC%A8%B2%E9%D1%AF", HttpUtility.UrlEncode(viewState));
         byte[]         postdatabyte = Encoding.GetEncoding("GB2312").GetBytes(postdata);
         HttpWebRequest request      = (HttpWebRequest)WebRequest.Create(post);
         request.ServicePoint.Expect100Continue = false;
         request.Method = "POST";
         request.Headers.Add("Cache-Control", "max-age=0");
         request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36";
         request.Accept    = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8";
         request.Headers.Add("Accept-Encoding", "gzip, deflate");
         request.Headers.Add("Accept-Language", "zh-CN,zh;q=0.8");
         request.Referer       = post;
         request.ContentLength = postdatabyte.Length;
         request.KeepAlive     = true;
         request.ContentType   = "application/x-www-form-urlencoded";
         request.Headers.Add("Upgrade-Insecure-Requests", "1");
         request.CookieContainer   = cookie;
         request.AllowAutoRedirect = false;
         using (Stream stream = request.GetRequestStream())
         {
             stream.Write(postdatabyte, 0, postdatabyte.Length);
         }
         HttpWebResponse response = (HttpWebResponse)request.GetResponse();
         string          str      = string.Empty;
         bool            gzip     = string.Equals(response.Headers["Vary"], "Accept-Encoding", StringComparison.OrdinalIgnoreCase);
         str = DecompressGzip(response.GetResponseStream(), gzip);
         response.Close();
         if (string.IsNullOrWhiteSpace(str) || !str.Contains("__VIEWSTATE"))
         {
             return(null);
         }
         List <string> tab = GetReg("<table", "</table>", str);
         if (tab.Count <= 0)
         {
             return(null);
         }
         List <string>     trs  = GetReg("<tr", "</tr>", tab[0]);
         List <GradeModel> list = new List <GradeModel>();
         foreach (string tr in trs.Skip(1))
         {
             List <string> tds   = GetReg("<td", "</td>", tr);
             GradeModel    model = new GradeModel();
             model.Year             = HttpUtility.HtmlDecode(GetContent(tds[0])).Trim();
             model.Semester         = HttpUtility.HtmlDecode(GetContent(tds[1])).Trim();
             model.ClassCode        = HttpUtility.HtmlDecode(GetContent(tds[2])).Trim();
             model.ClassName        = HttpUtility.HtmlDecode(GetContent(tds[3])).Trim();
             model.ClassNature      = HttpUtility.HtmlDecode(GetContent(tds[4])).Trim();
             model.ClassOwnership   = HttpUtility.HtmlDecode(GetContent(tds[5])).Trim();
             model.Credit           = HttpUtility.HtmlDecode(GetContent(tds[6])).Trim();
             model.GradePoint       = HttpUtility.HtmlDecode(GetContent(tds[7])).Trim();
             model.Grade            = HttpUtility.HtmlDecode(GetContent(tds[8])).Trim();
             model.MinorFlag        = HttpUtility.HtmlDecode(GetContent(tds[9])).Trim();
             model.ExaminationGrade = HttpUtility.HtmlDecode(GetContent(tds[10])).Trim();
             model.ReworkGrade      = HttpUtility.HtmlDecode(GetContent(tds[11])).Trim();
             model.CollegeName      = HttpUtility.HtmlDecode(GetContent(tds[12])).Trim();
             model.Note             = HttpUtility.HtmlDecode(GetContent(tds[13])).Trim();
             model.ReworkFlag       = HttpUtility.HtmlDecode(GetContent(tds[14])).Trim();
             model.ClassEnglishName = HttpUtility.HtmlDecode(GetContent(tds[15])).Trim();
             list.Add(model);
         }
         return(list);
     }
     catch (Exception ex)
     {
         LogUtils.Write(ex);
         return(null);
     }
 }
示例#3
0
        public List <GradeModel> GetGrade()
        {
            try
            {
                string         post = url_code + "xscj_gc.aspx?" + string.Format("xh={0}&xm={1}gnmkdm=N121605", HttpUtility.UrlEncode(username), HttpUtility.UrlEncode(name));
                HttpWebRequest req  = (HttpWebRequest)WebRequest.Create(post);
                req.Method            = "GET";
                req.CookieContainer   = cookie;
                req.KeepAlive         = true;
                req.Referer           = mainUrl;
                req.AllowAutoRedirect = false;
                req.Headers.Add("Upgrade-Insecure-Requests", "1");
                req.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36";
                req.Accept    = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8";
                req.Headers.Add("Accept-Encoding", "gzip, deflate");
                req.Headers.Add("Accept-Language", "zh-CN,zh;q=0.8");
                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                string          str  = string.Empty;
                bool            gzip = string.Equals(resp.Headers["Vary"], "Accept-Encoding", StringComparison.OrdinalIgnoreCase);
                str = DecompressGzip(resp.GetResponseStream(), gzip);
                resp.Close();
                if (string.IsNullOrWhiteSpace(str) || !str.Contains("__VIEWSTATE"))
                {
                    return(null);
                }
                var viewState = GetViewState(str);
                return(GetGradeDetail(viewState));
            }
            catch (Exception ex)
            {
                LogUtils.Write(ex);
                return(null);
            }



            //string location2 = post2;//dDwxNDM1NzMwODY2O3Q8O2w8aTwxPjs+O2w8dDw7bDxpPDE+O2k8Mz47aTw1PjtpPDk+Oz47bDx0PHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+O2w8aTw3Pjs+O2w8dDxAMDw7Ozs7Ozs7Ozs7Pjs7Pjs+Pjt0PEAwPHA8cDxsPERhdGFLZXlzO18hSXRlbUNvdW50Oz47bDxsPD47aTwwPjs+Pjs+Ozs7Ozs7Ozs+Ozs+O3Q8cDxwPGw8VmlzaWJsZTs+O2w8bzxmPjs+Pjs+Ozs+O3Q8O2w8aTwxPjs+O2w8dDxAMDw7Ozs7Ozs7Ozs7Pjs7Pjs+Pjs+Pjs+Pjs+82XDVlv7CkxSqsr4yV0d+9YiILs=
            //string post3 = "__VIEWSTATE=dDwxODI2NTc3MzMwO3Q8cDxsPHhoOz47bDwxMjA1MTAwNDI2Oz4%2BO2w8aTwxPjs%2BO2w8dDw7bDxpPDE%2BO2k8Mz47aTw1PjtpPDc%2BO2k8OT47aTwxMT47aTwxMz47aTwxNj47aTwyNj47aTwyNz47aTwyOD47aTwzNT47aTwzNz47aTwzOT47aTw0MT47aTw0NT47PjtsPHQ8cDxwPGw8VGV4dDs%2BO2w85a2m5Y%2B377yaMTIwNTEwMDQyNjs%2BPjs%2BOzs%2BO3Q8cDxwPGw8VGV4dDs%2BO2w85aeT5ZCN77ya6YOR5Yev5YWDOz4%2BOz47Oz47dDxwPHA8bDxUZXh0Oz47bDzlrabpmaLvvJrkv6Hmga%2Flt6XnqIvlrabpmaI7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPOS4k%2BS4mu%2B8mjs%2BPjs%2BOzs%2BO3Q8cDxwPGw8VGV4dDs%2BO2w855S15a2Q5L%2Bh5oGv5bel56iLOz4%2BOz47Oz47dDxwPHA8bDxUZXh0Oz47bDzooYzmlL%2Fnj63vvJrnlLXlrZAyMDEyLTM7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDIwMTIwNTExOz4%2BOz47Oz47dDx0PHA8cDxsPERhdGFUZXh0RmllbGQ7RGF0YVZhbHVlRmllbGQ7PjtsPFhOO1hOOz4%2BOz47dDxpPDU%2BO0A8XGU7MjAxNS0yMDE2OzIwMTQtMjAxNTsyMDEzLTIwMTQ7MjAxMi0yMDEzOz47QDxcZTsyMDE1LTIwMTY7MjAxNC0yMDE1OzIwMTMtMjAxNDsyMDEyLTIwMTM7Pj47Pjs7Pjt0PHA8O3A8bDxvbmNsaWNrOz47bDx3aW5kb3cucHJpbnQoKVw7Oz4%2BPjs7Pjt0PHA8O3A8bDxvbmNsaWNrOz47bDx3aW5kb3cuY2xvc2UoKVw7Oz4%2BPjs7Pjt0PHA8cDxsPFZpc2libGU7PjtsPG88dD47Pj47Pjs7Pjt0PEAwPDs7Ozs7Ozs7Ozs%2BOzs%2BO3Q8QDA8Ozs7Ozs7Ozs7Oz47Oz47dDxAMDw7Ozs7Ozs7Ozs7Pjs7Pjt0PDtsPGk8MD47aTwxPjtpPDI%2BO2k8ND47PjtsPHQ8O2w8aTwwPjtpPDE%2BOz47bDx0PDtsPGk8MD47aTwxPjs%2BO2w8dDxAMDw7Ozs7Ozs7Ozs7Pjs7Pjt0PEAwPDs7Ozs7Ozs7Ozs%2BOzs%2BOz4%2BO3Q8O2w8aTwwPjtpPDE%2BOz47bDx0PEAwPDs7Ozs7Ozs7Ozs%2BOzs%2BO3Q8QDA8Ozs7Ozs7Ozs7Oz47Oz47Pj47Pj47dDw7bDxpPDA%2BOz47bDx0PDtsPGk8MD47PjtsPHQ8QDA8Ozs7Ozs7Ozs7Oz47Oz47Pj47Pj47dDw7bDxpPDA%2BO2k8MT47PjtsPHQ8O2w8aTwwPjs%2BO2w8dDxAMDxwPHA8bDxWaXNpYmxlOz47bDxvPGY%2BOz4%2BOz47Ozs7Ozs7Ozs7Pjs7Pjs%2BPjt0PDtsPGk8MD47PjtsPHQ8QDA8cDxwPGw8VmlzaWJsZTs%2BO2w8bzxmPjs%2BPjs%2BOzs7Ozs7Ozs7Oz47Oz47Pj47Pj47dDw7bDxpPDA%2BOz47bDx0PDtsPGk8MD47PjtsPHQ8cDxwPGw8VGV4dDs%2BO2w8SE5DSjs%2BPjs%2BOzs%2BOz4%2BOz4%2BOz4%2BO3Q8QDA8Ozs7Ozs7Ozs7Oz47Oz47Pj47Pj47PsGtYjdJkWDU8mtEDl8EhORSEnpJ&ddlXN=&ddlXQ=&Button2=%D4%DA%D0%A3%D1%A7%CF%B0%B3%C9%BC%A8%B2%E9%D1%AF";
            //HttpWebRequest req3 = (HttpWebRequest)WebRequest.Create(location2);
            //req3.Method = "POST";
            //req3.Headers.Add("Accept-Encoding", "gzip,deflate");
            //req3.Headers.Add("Accept-Language", "zh-CN,zh;q=0.8");
            //req3.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
            //req3.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36";
            //req3.ContentType = "application/x-www-form-urlencoded";
            //req3.Referer = location2;
            //req3.KeepAlive = true;
            //byte[] postdatabyte3 = Encoding.UTF8.GetBytes(post3);
            //req3.ContentLength = postdatabyte3.Length;
            //using (Stream stream = req3.GetRequestStream())
            //{
            //    stream.Write(postdatabyte3, 0, postdatabyte3.Length);
            //}
            //HttpWebResponse resp3 = (HttpWebResponse)req3.GetResponse();
            //string str3 = string.Empty;
            //using (StreamReader reader = new StreamReader(resp3.GetResponseStream(), Encoding.GetEncoding("GB2312")))
            //{
            //    str3 = reader.ReadToEnd();
            //}
            //resp3.Close();
        }