Ejemplo n.º 1
0
 public static Image GetVcImage(string vcUrl, ref string code, ref CookieContainer vcCookie, string token = "")
 {
     //Image vcImage = null;
     Image vcImage = null;
     bool continueFlag=true;
     do
     {
         try
         {
             HttpClient client = new HttpClient(vcCookie);
             if (StaticValues.Proxy != "")
             {
                 client.Proxy = new WebProxy(StaticValues.Proxy);
             }
             Stream stream = client.GetImageStream(vcUrl);
             if (stream != null)
             {
                 vcImage = Image.FromStream(stream);
                 code = ImageRealize.GetCode0(vcImage);
                 bool ocrFlag=CheckVc(vcCookie, code, token);
                 code = ocrFlag ? code : "";
                 continueFlag = !ocrFlag && StaticValues.UserOcr;
                 //else
                 //{
                 //    break;
                 //}
                 //gif验证码
                 //FrameDimension fd = new FrameDimension(gif.FrameDimensionsList[0]);
                 //int count = gif.GetFrameCount(fd);
                 ////if (count == 6)
                 ////{
                 ////    gif.SelectActiveFrame(fd, 4);
                 ////    MemoryStream ms = new MemoryStream();
                 ////    gif.Save(ms, ImageFormat.Bmp);
                 ////    Image img1 = Image.FromStream(ms);
                 ////    picCommon.Image = img1;
                 ////}
                 //if (count == 1)
                 //{
                 //     code = ImageRealize.GetCode0(gif);
                 //     if (CheckVc(vcCookie, code, token))
                 //     {
                 //         break;
                 //     }
                 //}
                 //code = ImageRealize.GetCode(vcImage);
                 //if (CheckVc(vcCookie, code, token))
                 //{
                 //    break;
                 //}
             }
         }
         catch
         {
             break;
         }
     }
     while (continueFlag);
     return vcImage;
 }
        /// <summary>
        /// 获取验证码,并且识别
        /// </summary>
        /// <param name="yzmUrl"></param>
        /// <param name="code"></param>
        /// <returns></returns>
        public Image GetVcImage(string vcUrl,ref string code,ref CookieContainer vcCookie)
        {
            Image vcImage = null;
            HttpClient client = new HttpClient(vcCookie);
            //while (true)
            //{
                Stream stream = client.GetImageStream(vcUrl);
                vcImage = Image.FromStream(stream); 
                ImageRealize ir = new ImageRealize();
                //code = ir.GetCode(vcImage);
                //if (CheckVc(vcCookie, code))
                //{
                //    break;
                //}
                //byte[] m_buffer = new byte[4096];
                //int offset = 0;
                //int count = 0;
                //do
                //{
                //    count = stream.Read(m_buffer, offset, m_buffer.Length - offset);
                //    if (count > 0)
                //    {
                //        offset += count;
                //    }

                //}
                //while (count > 0);
                //if (offset > 0)
                //{
                //    StringBuilder codeBuilder = new StringBuilder(8, 8);
                //    byte[] ret = new byte[offset];
                //    Array.Copy(m_buffer, ret, offset);
                //    codeBuilder.Length = 0;
                //    if (ret.Length > 0)
                //    {
                //        if (GetCodeFromBuffer(1, ret, ret.Length, codeBuilder))
                //        {
                //            code = codeBuilder.ToString().ToUpper();
                //        }
                //        if (code.Length == 4)
                //        {
                //            code = code.Replace("V", "N").Replace("B", "8");
                //            if (CheckVc(vcCookie, code))
                //            {
                //                vcImage = Image.FromStream(new MemoryStream(ret, false));
                //                break;
                //            }
                //        }
                //    }

                //}
                stream.Close();
            //}
            return vcImage;
            
        }
 /// <summary>
 /// 检测验证码是否正确
 /// </summary>
 /// <param name="vcCookie"></param>
 /// <param name="vc"></param>
 /// <returns></returns>
 public bool CheckVc(CookieContainer vcCookie, string vc)
 {
     HttpClient client = new HttpClient(vcCookie);
     string url = "https://kyfw.12306.cn/otn/passcodeNew/checkRandCodeAnsyn";
     string data = "randCode={0}&rand=sjrand";
     data = string.Format(data, vc);
     var result = client.Post(url, data, "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/login/init");
     var ok = HtmlHelper.GetContent(result, "\"data\":", ",").Replace("\"", "") == "Y";
     return ok;
 }
Ejemplo n.º 4
0
 public void CheckUser()
 {
     HttpClient client = new HttpClient(Cookies);
     if (StaticValues.Proxy != "")
     {
         client.Proxy = new WebProxy(StaticValues.Proxy);
     }
     string url = "https://kyfw.12306.cn/otn/login/checkUser";
     string result = client.Post(url, "_json_att=", "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/leftTicket/init");
 }
Ejemplo n.º 5
0
 public string GetUserName()
 {
     HttpClient client =new HttpClient(Cookies);
     if (StaticValues.Proxy != "")
     {
         client.Proxy = new WebProxy(StaticValues.Proxy);
     }
     string url = "https://kyfw.12306.cn/otn/index/initMy12306";
     string result = client.Get(url);
     string userName = HtmlHelper.GetContent(result, "user_name=", ";").Replace("'", "");
     return Regex.Unescape(userName);
 }
Ejemplo n.º 6
0
 public bool SubmitOrderRequest(string secretStr,QueryEntity qe,ref string msg)
 {
     HttpClient client = new HttpClient(Cookies);
     if (StaticValues.Proxy != "")
     {
         client.Proxy = new WebProxy(StaticValues.Proxy);
     }
     string url = "https://kyfw.12306.cn/otn/leftTicket/submitOrderRequest";
     string data = "secretStr={0}&train_date={1}&back_train_date={2}&tour_flag=dc&purpose_codes=ADULT&query_from_station_name={3}&query_to_station_name={4}&undefined";
     object[] objs = new object[] { secretStr, qe.train_date, qe.train_date,qe.from_station_telecode_name, qe.to_station_telecode_name};
     data = string.Format(data, objs);
     url = url + "?" + data;
     string result = client.Get(url, "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/leftTicket/init").Replace("\"","");
     string status = HtmlHelper.GetContent(result, "status:", ",");
     msg = HtmlHelper.GetContent(result, "messages:", ",").Replace("[","").Replace("]","");
     return status == "true";
 }
Ejemplo n.º 7
0
 public GetPassengerDTOsResponseInfo GetMyPassengers()
 {
     HttpClient client = new HttpClient(Cookies);
     if (StaticValues.Proxy != "")
     {
         client.Proxy = new WebProxy(StaticValues.Proxy);
     }
     string url = "https://kyfw.12306.cn/otn/confirmPassenger/getPassengerDTOs";
     string result = client.Get(url);
     if (result != "")
     {
         GetPassengerDTOsResponseInfo ri = JsonHelper.JsonDeserialize<GetPassengerDTOsResponseInfo>(result);
         return ri;
     }
     else
         return null;
 }
Ejemplo n.º 8
0
        private void btnTest_Click(object sender, EventArgs e)
        {
            if (txtIP.Text.Trim() != "" && txtPort.Text.Trim() != "")
            {
                string proxy = txtIP.Text.Trim() + ":" + txtPort.Text.Trim();
                string result = string.Empty;
                btnTest.Enabled = false;
                Thread thread = new Thread(() =>
                    {
                        Stopwatch sw = new Stopwatch();
                        sw.Start();
                        HttpClient client = new HttpClient();
                        client.Proxy = new System.Net.WebProxy(proxy);
                        client.TimeOut = 2000;
                        try
                        {
                            string html = client.Get("http://www.baidu.com");
                            if (html != "")
                            {
                                result = "响应成功!";

                            }
                            else
                            {
                                result = "响应失败!";
                            }
                        }
                        catch
                        { }
                        sw.Stop();
                        result += ",响应花费:" + sw.ElapsedMilliseconds + "ms";
                        this.BeginInvoke(new MethodInvoker(delegate()
                        {
                            lbResult.Text = result;
                            btnTest.Enabled = true;
                        }));
                    });
                thread.IsBackground = true;
                thread.Start();
            }
            else
            {
                lbResult.Text = "请输入完整再提交!";
            }
        }
Ejemplo n.º 9
0
 public QueryTicketResponseInfo QueryLeftTicketDTO(string train_date, string from_station, string to_station)
 {
     HttpClient client =new HttpClient(Cookies);
     if (StaticValues.Proxy != "")
     {
         client.Proxy = new WebProxy(StaticValues.Proxy);
     }
     string url = "https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date={0}&leftTicketDTO.from_station={1}&leftTicketDTO.to_station={2}&purpose_codes=ADULT";
     url = string.Format(url, train_date, from_station, to_station);
     string result = client.Get(url);
     if (result != "")
     {
         QueryTicketResponseInfo ri = JsonHelper.JsonDeserialize<QueryTicketResponseInfo>(result);
         return ri;
     }
     else
         return null;
 }
Ejemplo n.º 10
0
 public static bool Login(string userName,string pwd,string vc,ref string msg,ref CookieContainer cookies)
 {
     HttpClient client=new HttpClient(cookies);
     if (StaticValues.Proxy != "")
     {
         client.Proxy = new WebProxy(StaticValues.Proxy);
     }
     string url = "https://kyfw.12306.cn/otn/login/loginAysnSuggest";
     string data = "loginUserDTO.user_name=" + userName + "&userDTO.password="******"&randCode=" + vc; ;
     string result = client.Post(url, data, "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/login/init");
     result=result.Replace("\"","");
     bool flag = result.Contains("loginCheck:Y");
     if (!flag)
     {
         msg = HtmlHelper.GetContent(result, "messages:", "],").Replace("[","").Replace("]","");
     }
     return flag;
 }
 /// <summary>
 /// 检测验证码是否正确
 /// </summary>
 /// <param name="vcCookie"></param>
 /// <param name="vc"></param>
 /// <returns></returns>
 public static bool CheckVc(CookieContainer vcCookie, string vc,string token)
 {
     HttpClient client = new HttpClient(vcCookie);
     if (StaticValues.Proxy != "")
     {
         client.Proxy = new WebProxy(StaticValues.Proxy);
     }
     string url = "https://kyfw.12306.cn/otn/passcodeNew/checkRandCodeAnsyn";
     string data = "randCode=" + vc;
     if (token != "")
     {
         data = data + "&rand=randp&REPEAT_SUBMIT_TOKEN=" + token;
     }
     else
     {
         data=data+"&rand=sjrand";
     }
     var result = client.Post(url, data, "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/login/init");
     var ok = HtmlHelper.GetContent(result, "\"data\":", ",").Replace("\"", "") == "Y";
     return ok;
 }
Ejemplo n.º 12
0
        public List<TrainDetails> GetTrainDetails(string train_no, string start_station, string aim_station, string date)
        {
            try
            {
                HttpClient client = new HttpClient(Cookies);
                if (StaticValues.Proxy != "")
                {
                    client.Proxy = new WebProxy(StaticValues.Proxy);
                }
                List<TrainDetails> list = new List<TrainDetails>();
                string url = "https://kyfw.12306.cn/otn/czxx/queryByTrainNo?";
                string data = "train_no=" + train_no + "&from_station_telecode=" + start_station + "&to_station_telecode=" + aim_station + "&depart_date=" + date; ;
                data = string.Format(data, train_no, start_station, aim_station, date);
                url = url + data;
                string result = client.Get(url);
                string json = HtmlHelper.GetContent(result, "\"data\":{\"data\":", "]}");
                json = json + "]";
                list = JsonHelper.FromJson<List<TrainDetails>>(json);
                return list;
            }
            catch
            {
                return null;
            }
 
        }
Ejemplo n.º 13
0
 public QueryWaitTimeResult QueryOrderWaitTime(string token)
 {
     try
     {
         HttpClient client = new HttpClient(Cookies);
         if (StaticValues.Proxy != "")
         {
             client.Proxy = new WebProxy(StaticValues.Proxy);
         }
         string url = "https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?tourFlag=dc&_json_att=&REPEAT_SUBMIT_TOKEN=" + token;
         string result = client.Get(url, "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/confirmPassenger/initDc");
         string json = HtmlHelper.GetContent(result, "\"data\":", "},") + "}";
         QueryWaitTimeResult qw = JsonHelper.FromJson<QueryWaitTimeResult>(json);
         return qw;
     }
     catch
     {
         return null;
     }
 }
Ejemplo n.º 14
0
 public bool ConfirmSingleForQueue(TicketInfo ti,string vc,List<PassengerInfo> list,ref string msg)
 {
     try
     {
         msg = string.Empty;
         HttpClient client = new HttpClient(Cookies);
         if (StaticValues.Proxy != "")
         {
             client.Proxy = new WebProxy(StaticValues.Proxy);
         }
         string passengerTicketStr = "";
         string oldpassengerTicketStr = "";
         foreach (PassengerInfo pi in list)
         {
             var ap = pi.SeatType + ",0," + pi.TicketType + "," + pi.Passenger.passenger_name + "," + pi.Passenger.passenger_id_type_code + "," + pi.Passenger.passenger_id_no + "," + (pi.Passenger.phone_no == null ? "" : pi.Passenger.phone_no) + "," + "N";
             passengerTicketStr += ap + "_";
             var ao = pi.Passenger.passenger_name + "," + pi.Passenger.passenger_id_type_code + "," + pi.Passenger.passenger_id_no + "," + pi.Passenger.passenger_type;
             oldpassengerTicketStr += ao + "_";
         }
         string token = ti.Token;
         string checkKey = ti.CheckKey;
         string leftTicket = ti.LeftTicketInfo.ypInfoDetail;
         passengerTicketStr = HttpUtility.UrlEncode(passengerTicketStr);
         oldpassengerTicketStr = HttpUtility.UrlEncode(oldpassengerTicketStr);
         string trainLocation = ti.TrainLocation;
         string purpose_codes = "00";
         string data = "passengerTicketStr={0}&oldPassengerStr={1}&randCode={2}&purpose_codes={3}&key_check_isChange={4}&leftTicketStr={5}&train_location={6}&_json_att=&REPEAT_SUBMIT_TOKEN={7}";
         data = string.Format(data, passengerTicketStr, oldpassengerTicketStr, vc, purpose_codes, checkKey, leftTicket, trainLocation, token);
         string url = "https://kyfw.12306.cn/otn/confirmPassenger/confirmSingleForQueue";
         string result = client.Post(url, data, "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/confirmPassenger/initDc");
         bool flag = result.Contains("submitStatus:true");
         if (!flag)
         {
             msg = HtmlHelper.GetContent(result, "errMsg:", ",");
         }
         return flag;
     }
     catch
     {
         return false;
     }
 }
Ejemplo n.º 15
0
        static void Main()
        {
            try
            {
                //处理未捕获的异常   
                Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
                //处理UI线程异常   
                Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
                //处理非UI线程异常   
                AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);


                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                //删除老版本文件
                string[] oldFiles = { "Common.dll", "GlassButton.dll", "TicketHelper.exe" };
                foreach (string str in oldFiles)
                {
                    if (File.Exists(str))
                        File.Delete(str);
                }
                string checkUpdateUrl = "http://waner8.sinaapp.com/Update.txt";
                HttpClient client = new HttpClient();
                FileVersionInfo myFileVersion = FileVersionInfo.GetVersionInfo(System.Windows.Forms.Application.ExecutablePath);
                client.TimeOut = 5000;
                string json = client.Get(checkUpdateUrl);
                bool exit = false;
                if (json != "")
                {
                    if (json != "timeout")
                    {
                        UpdateInfo ui = JsonHelper.FromJson<UpdateInfo>(json);
                        if (ui.NewVersion != myFileVersion.FileVersion)
                        {
                            exit = true;
                        }
                    }
                }
                if (exit)
                {
                    json = json.Replace("\"", "'");
                    Process.Start("AutoUpdater.exe", json);
                    Application.Exit();
                }
                else
                {
                    LoadingForm lf = new LoadingForm();
                    if (lf.ShowDialog() == DialogResult.OK)
                    {
                        LoginForm l = new LoginForm();
                        if (l.ShowDialog() == DialogResult.OK)
                        {
                            Application.Run(new MainForm());
                        }
                        else
                        {
                            Application.Exit();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                string str = "";
                string strDateInfo = "出现应用程序未处理的异常:" + DateTime.Now.ToString() + "\r\n";
                if (ex != null)
                {
                    str = string.Format(strDateInfo + "异常类型:{0}\r\n异常消息:{1}\r\n异常信息:{2}\r\n",
                         ex.GetType().Name, ex.Message, ex.StackTrace);
                }
                else
                {
                    str = string.Format("应用程序线程错误:{0}", ex);
                }

                writeLog(str);
            }
        }
 public static Image GetVcImage(string vcUrl, ref string code, ref CookieContainer vcCookie, string token = "")
 {
     //Image vcImage = null;
     Image vcImage = null;
     bool continueFlag=true;
     do
     {
         try
         {
             Stopwatch sw = new Stopwatch();
             sw.Start();
             HttpClient client = new HttpClient(vcCookie);
             if (StaticValues.Proxy != "")
             {
                 client.Proxy = new WebProxy(StaticValues.Proxy);
             }
             Stream stream = client.GetImageStream(vcUrl);
             sw.Stop();
             if (stream != null)
             {
                 vcImage = Image.FromStream(stream);
                 if (sw.ElapsedMilliseconds > 2000)
                 {
                     //continueFlag = false;
                 }
                 else
                 {
                     if (vcImage.Width == 78)
                     {
                         code = ImageRealize.GetCode0(vcImage);
                     }
                     else
                     {
                         code = ImageRealize.GetCode1(vcImage);
                     }
                     if (CheckVc(vcCookie, code, token))
                     {
                         break;
                     }
                     else
                         code = "";
                 }
                 //else
                 //{
                 //    break;
                 //}
                 //gif验证码
                 //FrameDimension fd = new FrameDimension(gif.FrameDimensionsList[0]);
                 //int count = gif.GetFrameCount(fd);
                 ////if (count == 6)
                 ////{
                 ////    gif.SelectActiveFrame(fd, 4);
                 ////    MemoryStream ms = new MemoryStream();
                 ////    gif.Save(ms, ImageFormat.Bmp);
                 ////    Image img1 = Image.FromStream(ms);
                 ////    picCommon.Image = img1;
                 ////}
                 //if (count == 1)
                 //{
                 //     code = ImageRealize.GetCode0(gif);
                 //     if (CheckVc(vcCookie, code, token))
                 //     {
                 //         break;
                 //     }
                 //}
                 //code = ImageRealize.GetCode(vcImage);
                 //if (CheckVc(vcCookie, code, token))
                 //{
                 //    break;
                 //}
             }
         }
         catch
         {
             break;
         }
     }
     while (continueFlag);
     return vcImage;
 }
Ejemplo n.º 17
0
 public bool CheckOrderInfo(string token, string vc, List<PassengerInfo> list,ref string msg)
 {
     try
     {
         HttpClient client = new HttpClient(Cookies);
         if (StaticValues.Proxy != "")
         {
             client.Proxy = new WebProxy(StaticValues.Proxy);
         }
         string passengerTicketStr = "";
         string oldpassengerTicketStr = "";
         foreach (PassengerInfo pi in list)
         {
             var ap = pi.SeatType + ",0," + pi.TicketType + "," + pi.Passenger.passenger_name + "," + pi.Passenger.passenger_id_type_code + "," + pi.Passenger.passenger_id_no + "," + (pi.Passenger.phone_no == null ? "" : pi.Passenger.phone_no) + "," + "N";
             passengerTicketStr += ap + "_";
             var ao = pi.Passenger.passenger_name + "," + pi.Passenger.passenger_id_type_code + "," + pi.Passenger.passenger_id_no + "," + pi.Passenger.passenger_type;
             oldpassengerTicketStr += ao + "_";
         }
         passengerTicketStr = HttpUtility.UrlEncode(passengerTicketStr);
         oldpassengerTicketStr = HttpUtility.UrlEncode(oldpassengerTicketStr);
         string data = "cancel_flag=2&bed_level_order_num=000000000000000000000000000000&passengerTicketStr={0}&oldPassengerStr={1}&tour_flag=dc&randCode={2}&_json_att=&REPEAT_SUBMIT_TOKEN={3}";
         string url = "https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo";
         data = string.Format(data, passengerTicketStr, oldpassengerTicketStr, vc, token);
         string result = client.Post(url, data, "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/confirmPassenger/initDc");
         result = result.Replace("\"", "");
         bool flag = result.Contains("submitStatus:true");
         if (!flag)
         {
             msg = HtmlHelper.GetContent(result, "errMsg:", ",");
         }
         return flag;
     }
     catch
     {
         return false;
     }
 }
Ejemplo n.º 18
0
 public CountInfo GetQueueCount(TicketInfo ti,string seatType)
 {
     try
     {
         HttpClient client = new HttpClient(Cookies);
         if (StaticValues.Proxy != "")
         {
             client.Proxy = new WebProxy(StaticValues.Proxy);
         }
         string trainDate = ti.LeftTicketInfo.train_date + " 00:00:00"; ;
         trainDate = Convert.ToDateTime(trainDate).ToString("ddd MMM dd yyyy HH:mm:ss 'GMT'zzz ", System.Globalization.CultureInfo.GetCultureInfo("en-US"));
         trainDate = trainDate.Replace("08:00", "0800") + "(中国标准时间)";
         string trainNo = ti.LeftTicketInfo.train_no;
         string trainCode = ti.LeftTicketInfo.station_train_code;
         string leftTicket = ti.LeftTicketInfo.ypInfoDetail;
         string fromStationTelecode = ti.LeftTicketInfo.from_station;
         string toStationTelecode = ti.LeftTicketInfo.to_station;
         string purpose_codes = "00";
         string token = ti.Token;
         string data = "train_date={0}&train_no={1}&stationTrainCode={2}&seatType={3}&fromStationTelecode={4}&toStationTelecode={5}&leftTicket={6}&purpose_codes={7}&_json_att=&REPEAT_SUBMIT_TOKEN={8}";
         object[] objs = new object[] { HttpUtility.UrlEncode(trainDate), trainNo, trainCode, seatType, fromStationTelecode, toStationTelecode, leftTicket, purpose_codes, token };
         data = string.Format(data, objs);
         string url = "https://kyfw.12306.cn/otn/confirmPassenger/getQueueCount";
         string result = client.Post(url, data, "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/confirmPassenger/initDc");
         result = result.Replace("\"", "");
         string count = HtmlHelper.GetContent(result, "count:", ",");
         string ticket = HtmlHelper.GetContent(result, "ticket:", ",");
         string op_2 = HtmlHelper.GetContent(result, "op_2:", ",");
         string countT = HtmlHelper.GetContent(result, "countT:", ",");
         string op_1 = HtmlHelper.GetContent(result, "op_1:", "}");
         string ticketCnt = JsFuncitonHelper.GetCnt(ticket, seatType);
         CountInfo ci = new CountInfo();
         ci.count = count;
         ci.countT = countT;
         ci.op_1 = op_1;
         ci.op_2 = op_2;
         ci.ticket = ticket;
         ci.ticketCnt = ticketCnt;
         return ci;
     }
     catch
     {
         return null;
     }
 }
Ejemplo n.º 19
0
 public TicketInfo GetTicketInfo()
 {
     try
     {
         TicketInfo ti = null;
         HttpClient client = new HttpClient(Cookies);
         if (StaticValues.Proxy != "")
         {
             client.Proxy = new WebProxy(StaticValues.Proxy);
         }
         string url = "https://kyfw.12306.cn/otn/confirmPassenger/initDc";
         string result = client.Get(url, "kyfw.12306.cn", "https://kyfw.12306.cn", "https://kyfw.12306.cn/otn/leftTicket/init");
         var pTicketInfo = HtmlHelper.GetContent(result, "'leftDetails':\\[", "],");
         pTicketInfo = Regex.Unescape(pTicketInfo).Replace("'", "");
         string[] list = pTicketInfo.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
         if (list.Length > 0)
         {
             ti = new TicketInfo();
             List<TickePriceInfo> tpiList = new List<TickePriceInfo>();
             for (int i = 0; i < list.Length; i++)
             {
                 string trainTicketInfoStr = list[i];
                 trainTicketInfoStr = trainTicketInfoStr.Replace("(", "#").Replace(")", "#");
                 string[] priceArray = trainTicketInfoStr.Split("#".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                 TickePriceInfo tpi = new TickePriceInfo();
                 tpi.SeatType = priceArray[0];
                 tpi.Price = priceArray[1];
                 tpi.TicektCnt = priceArray[2];
                 tpiList.Add(tpi);
             }
             ti.TicketList = tpiList;
             ti.Token = HtmlHelper.GetContent(result, "globalRepeatSubmitToken", ";").Replace("=", "").Replace("'", "").Trim();
             string leftTicket = HtmlHelper.GetContent(result, "'queryLeftTicketRequestDTO':", "}");
             leftTicket = leftTicket + "}";
             QueryLeftTicketRequestDTO leftTicketRequst = JsonHelper.FromJson<QueryLeftTicketRequestDTO>(leftTicket);
             //日期转换
             string trainDate = leftTicketRequst.train_date;
             leftTicketRequst.train_date = trainDate.Substring(0, 4) + "-" + trainDate.Substring(4, 2) + "-" + trainDate.Substring(6);
             var key_check_isChange = HtmlHelper.GetContent(result, "'key_check_isChange':", ",").Replace("'", "");
             var _temp = HtmlHelper.GetContent(result, "'queryLeftTicketRequestDTO':", "};");
             _temp = _temp + "};";
             var train_location = HtmlHelper.GetContent(_temp, "'train_location':", "};").Replace("'", "");
             ti.CheckKey = key_check_isChange;
             ti.TrainLocation = train_location;
             ti.LeftTicketInfo = leftTicketRequst;
         }
         return ti;
     }
     catch
     {
         return null;
     }
 }
Ejemplo n.º 20
0
 private void KeyLoginState()
 {
     Thread t = new Thread(() =>
     {
         while (true)
         {
             HttpClient client = new HttpClient(StaticValues.MyCookies);
             string html = client.Get("https://kyfw.12306.cn/otn/index/initMy12306");
             toolStatusBarSys.Text = "已刷新登陆状态," + DateTime.Now.AddMinutes(5).ToString() + "再次刷新!";
             Thread.Sleep(1000 * 60 * 5);//每5分钟检测一次
         }
     });
     t.IsBackground = true;
     t.Start();
 }