当前位置:编程学习 > C#/ASP.NET >>

C# 写的购票小程序,过年要回家的童鞋的福音啊!!!

测试可用,对照说明正确填写input.txt

然后双击运行Sanmi.12306.exe文件


购买成功后等到12306官网未完成的订单完成支付,票票就到手了 c# --------------------编程问答-------------------- 附件怎么上传呢 ? --------------------编程问答-------------------- http://download.csdn.net/download/wangle1189/4998797 --------------------编程问答-------------------- --------------------编程问答-------------------- 收藏一下啊,参考 --------------------编程问答-------------------- 源程序有吗  ???  --------------------编程问答-------------------- 有的~~~~~~~~~~~ --------------------编程问答-------------------- 顶!

需要订票都来看看。 --------------------编程问答-------------------- 先上源代码!!! --------------------编程问答-------------------- 第一步登录
public void Login()
        {
            string url = string.Empty;
            string html = string.Empty;
            string data = string.Empty;


            for (int i = 0; i < 10000; i++)
            {
                try
                {
                    #region 加载验证码
                    url = "https://dynamic.12306.cn/otsweb/passCodeAction.do?rand=sjrand";   // 登录验证码

                    Stream stream = null;

                    lock (obj)
                    {
                        for (int j = 0; j < 10000; j++)
                        {
                            stream = HttpHelper.GetResponseImage(url);
                            if (stream != null)
                            {
                                // 读取并保存登录验证码
                                imageLogin = Image.FromStream(stream);
                                Show(imageLogin);
                                Cracker ck = new Cracker();
                                imageCodeLogin = ck.Read((Bitmap)imageLogin);

                                if (this.btnCheck.Checked == true)
                                {
                                    if (imageCodeLogin.Length == 4)
                                    {
                                        break;
                                    }
                                    else
                                    {
                                        Output("验证码位数不足,重新加载\r\n");
                                    }
                                }
                                else
                                {
                                    break;
                                }
                            }
                            else
                            {
                                Output("获取登录验证码失败,正在进行第" + i.ToString() + "次重试\r\n");
                            }
                        }
                    }
                    #endregion

                    if (this.btnCheck.Checked == false)
                    {
                        TextFocus();
                        threadBuy.Suspend();

                        imageCodeLogin = this.txtCode.Text.Trim();
                    }

                    #region 获得随机数
                    string randomUrl = "https://dynamic.12306.cn/otsweb/loginAction.do?method=loginAysnSuggest";
                    html = HttpHelper.GetResponse(randomUrl, "POST", string.Empty);
                    string[] temp = html.Split('"');
                    string random = temp[3];
                    #endregion

                    url = "https://dynamic.12306.cn/otsweb/loginAction.do?method=login";
                    data = "loginRand=" + random + "&loginUser.user_name=" + id + "&nameErrorFocus=&user.password=" + password + "&passwordErrorFocus=&randCode=" + imageCodeLogin + "&randErrorFocus=";
                    html = HttpHelper.GetResponse(url, "POST", data);

                    // 登录成功
                    if (html.Contains("欢迎您"))
                    {
                        Output("成功登录... 账号:" + id + "\r\n");
                        break;
                    }
                    else
                    {
                        Output("登录失败,再次登录...\r\n");
                    }
                }
                catch { }
            }

            Search();
        } // 登录
--------------------编程问答-------------------- 第二步,查询:
  public void Search()
        {
            Output("购票信息" + date + from_CN + "--" + to_CN + no + type + "\r\n");
            Output("开始查询(1分钟输出一次)...\r\n");
            DateTime date_Out = DateTime.Now;  // 用于输出的临时变量

            string url = string.Empty;
            string data = string.Empty;
            string html = string.Empty;

            if (!string.IsNullOrEmpty(no))
            {
                // 在输入车次的时候获得车次代码 这里所获得的no_New为查询所用 如T38获得6300000T3803
                url = "https://dynamic.12306.cn/otsweb/order/querySingleAction.do?method=queryststrainall";
                data = "date=" + date;
                data += "&fromstation=" + from;
                data += "&tostation=" + to;
                data += "&starttime=00%3A00--24%3A00";
                html = HttpHelper.GetResponse(url, "Post", data);
                string[] list = html.Split('}');
                for (int j = 0; j < list.Length - 1; j++)
                {
                    string[] temp = list[j].Split('"');
                    if (temp[23].ToLower().Contains(no.ToLower()))
                    {
                        no_Buy = temp[11];
                        break;
                    }
                }

                if (string.IsNullOrEmpty(no_Buy))
                {
                    Output("未查询到" + no + "车次列车信息,忽略该信息按出发地-->目的地方式操作\r\n");
                }
            }

            // 查询余票
            url = "https://dynamic.12306.cn/otsweb/order/querySingleAction.do?method=queryLeftTicket";
            html = string.Empty;
            data = "orderRequest.train_date=" + date;
            data += "&orderRequest.from_station_telecode=" + from;
            data += "&orderRequest.to_station_telecode=" + to;
            data += "&orderRequest.train_no=" + no_Buy;   // 车次
            data += "&trainPassType=QB";
            data += "&trainClass=" + train_type; // QB#D#Z#T#K#QT 全部车型
            data += "&includeStudent=00";                     // 非学生票
            data += "&seatTypeAndNum=";
            data += "&orderRequest.start_time_str=" + date_range;  //00:00--24:00

            // 查询
            while (true)
            {
                html = HttpHelper.GetResponse(url, "Post", data);
                if (html != "")
                {
                    if (html == "-10" || html == "-1")
                    {
                        Output("12306暂停服务(崩溃),查询暂停0.5秒\r\n");
                        Thread.Sleep(500);
                    }
                    // 有票时退出
                    else if (CheckSearch(html, ref date_Out) == true)
                    {
                        // 获得的no_New为后续购票所用 因为在没有输入车次的时候该数据此时为Emputy 
                        url = "https://dynamic.12306.cn/otsweb/order/querySingleAction.do?method=queryststrainall";
                        data = "date=" + date;
                        data += "&fromstation=" + from;
                        data += "&tostation=" + to;
                        data += "&starttime=00%3A00--24%3A00";
                        html = HttpHelper.GetResponse(url, "Post", data);
                        string[] list = html.Split('}');
                        for (int j = 0; j < list.Length - 1; j++)
                        {
                            string[] temp = list[j].Split('"');
                            if (temp[23].ToLower().Contains(no.ToLower()))
                            {
                                no_Buy = temp[11];
                                break;  // 退出查询车次代码循环
                            }
                        }

                        break;  // 退出车票查询循环
                    }
                }
            }

            Preprogram();
        } // 查询
--------------------编程问答-------------------- 第三步,预定: 
 public void Preprogram()
        {
            string[] list = detail.Split('#');
            Output("预定...\r\n");
            try
            {
                string url = "https://dynamic.12306.cn/otsweb/order/querySingleAction.do?method=submutOrderRequest";
                string data = "station_train_code=" + list[0]; // 车次
                data += "&train_date=" + date;         // 时间
                data += "&seattype_num=";
                data += "&from_station_telecode=" + list[4];   // 起始站代码
                data += "&to_station_telecode=" + list[5];     // 到达站代码
                data += "&include_student=00";                 // 非学生票
                data += "&from_station_telecode_name=" + System.Web.HttpUtility.UrlEncode(list[7], System.Text.Encoding.GetEncoding("UTF-8")); // 起始站名称
                data += "&to_station_telecode_name=" + System.Web.HttpUtility.UrlEncode(list[8], System.Text.Encoding.GetEncoding("UTF-8"));   // 到达站名称
                data += "&round_train_date=" + date;      // 时间
                data += "&round_start_time_str=" + date_range; // 00:00--24:00
                data += "&single_round_type=1";
                data += "&train_pass_type=QB";                    // 全部 代表所有列车类型
                data += "&train_class_arr=" + train_type;  // QB#D#Z#T#K#QT# 代表所有列车类型
                data += "&start_time_str=" + date_range;       // 00:00--24:00  出发时间
                data += "&lishi=" + System.Web.HttpUtility.UrlEncode(list[1], System.Text.Encoding.GetEncoding("UTF-8"));              // 总花费时间 
                data += "&train_start_time=" + System.Web.HttpUtility.UrlEncode(list[2], System.Text.Encoding.GetEncoding("UTF-8"));   // 发车时间
                data += "&trainno4=" + no_Buy;      // 嵌套车次            
                data += "&arrive_time=" + System.Web.HttpUtility.UrlEncode(list[6], System.Text.Encoding.GetEncoding("UTF-8"));        // 到站时间          
                data += "&from_station_name=" + System.Web.HttpUtility.UrlEncode(from_CN, System.Text.Encoding.GetEncoding("UTF-8"));
                data += "&to_station_name=" + System.Web.HttpUtility.UrlEncode(to_CN, System.Text.Encoding.GetEncoding("UTF-8"));
                data += "&from_station_no=" + list[9];            // 出发站在该线路的坐标 01开始
                data += "&to_station_no=" + list[10];             // 到达站在该线路的坐标
                data += "&ypInfoDetail=" + list[11];
                data += "&mmStr=" + list[12];
                data += "&locationCode=" + list[13];
                data_Buy = data;
                string html = HttpHelper.GetNewResponse(url, "POST", data);

                // 更新 TOKEN 
                url = "https://dynamic.12306.cn/otsweb/order/confirmPassengerAction.do?method=init";
                data = string.Empty;
                html = HttpHelper.GetResponse(url, "POST", data);
                string temp = html;
                temp = temp.Substring(temp.IndexOf("name=\"org.apache.struts.taglib.html.TOKEN\" value=\"") + 50);
                token = temp.Substring(0, temp.IndexOf('"'));  // 获取令牌
                temp = html;
                int index = temp.IndexOf("id=\"left_ticket\"");
                temp = temp.Substring(temp.IndexOf("id=\"left_ticket\"") + 26);
                leftTicketStr = temp.Substring(0, temp.IndexOf('"'));
            }
            catch { }

            Order();
        } // 预定
--------------------编程问答-------------------- 不错不错, --------------------编程问答-------------------- 是对对预定的方法开多个线程抢票的吗?
这个怎么实现的? --------------------编程问答-------------------- 下下来试试看! --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 好东西  中午吃饭的时候还和同事聊购票器的事情呢  --------------------编程问答-------------------- 哈哈 很牛逼的样子啊 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 第四步,提交订单:
 public void Order() // 提交订单
        {
            bool isStop = false;
            string[] list = detail.Split('#');
            Output("提交订单,再次查询余票,在余票>0时提交(每分钟输出一次)\r\n");
            DateTime date_Out = DateTime.Now;  // 用于输出的临时变量

            string url = string.Empty;
            string html = string.Empty;
            string data = string.Empty;
            bool isFirst = true;

            for (int i = 0; i < 10000; i++)
            {
                try
                {
                    if (isFirst == true)   // 第一次进来时加载验证码
                    {
                        #region 加载验证码
                        url = "https://dynamic.12306.cn/otsweb/passCodeAction.do?rand=randp";   // 提交订单验证码

                        Stream stream = null;

                        lock (obj)
                        {
                            for (int j = 0; j < 10000; j++)
                            {
                                stream = HttpHelper.GetResponseImage(url);
                                if (stream != null)
                                {
                                    // 读取并保存订单验证码
                                    imageOrder = Image.FromStream(stream);
                                    Show(imageOrder);
                                    Cracker ck = new Cracker();
                                    imageCodeOrder = ck.Read((Bitmap)imageOrder);
                                    if (this.btnCheck.Checked == true)
                                    {
                                        if (imageCodeLogin.Length == 4)
                                        {
                                            break;
                                        }
                                        else
                                        {
                                            Output("验证码位数不足,重新加载\r\n");
                                        }
                                    }
                                    else
                                    {
                                        break;
                                    }
                                }
                                else
                                {
                                    Output("获取登录验证码失败,正在进行第" + i.ToString() + "次重试\r\n");
                                }
                            }
                        }
                        #endregion

                        if (this.btnCheck.Checked == false)
                        {
                            TextFocus();
                            threadBuy.Suspend();

                            imageCodeOrder = this.txtCode.Text.Trim();
                        }
                    }

                    url = "https://dynamic.12306.cn/otsweb/order/confirmPassengerAction.do?method=checkOrderInfo&rand=";
                    url += imageCodeOrder;
                    data_Buy = "org.apache.struts.taglib.html.TOKEN=" + token;
                    data_Buy += "&leftTicketStr=" + leftTicketStr;
                    // 中文或拼音首字母
                    data_Buy += "&textfield=%E4%B8%AD%E6%96%87%E6%88%96%E6%8B%BC%E9%9F%B3%E9%A6%96%E5%AD%97%E6%AF%8D";
                    //data_Buy += "&checkbox" + name_Index + "=" + name_Index; // 联系人在列表中的位置 
                    data_Buy += "&checkbox0=0";
                    data_Buy += "&orderRequest.train_date=" + date;
                    data_Buy += "&orderRequest.train_no=" + no_Buy;
                    data_Buy += "&orderRequest.station_train_code=" + no;
                    data_Buy += "&orderRequest.from_station_telecode=" + from;
                    data_Buy += "&orderRequest.to_station_telecode=" + to;
                    data_Buy += "&orderRequest.seat_type_code=";
                    //data_Buy += "&orderRequest.seat_detail_type_code=";
                    data_Buy += "&orderRequest.ticket_type_order_num=";
                    data_Buy += "&orderRequest.bed_level_order_num=000000000000000000000000000000";
                    data_Buy += "&orderRequest.start_time=" + System.Web.HttpUtility.UrlEncode(list[2], System.Text.Encoding.GetEncoding("UTF-8"));
                    data_Buy += "&orderRequest.end_time=" + System.Web.HttpUtility.UrlEncode(list[6], System.Text.Encoding.GetEncoding("UTF-8"));
                    data_Buy += "&orderRequest.from_station_name=" + System.Web.HttpUtility.UrlEncode(from_CN, System.Text.Encoding.GetEncoding("UTF-8"));
                    data_Buy += "&orderRequest.to_station_name=" + System.Web.HttpUtility.UrlEncode(to_CN, System.Text.Encoding.GetEncoding("UTF-8"));
                    data_Buy += "&orderRequest.cancel_flag=1";
                    data_Buy += "&orderRequest.id_mode=Y";
                    string passengerTickets = seat + ",0,1," + name + ",1," + id_code + "," + phone + ",Y";
                    data_Buy += "&passengerTickets=" + System.Web.HttpUtility.UrlEncode(passengerTickets, System.Text.Encoding.GetEncoding("UTF-8"));
                    string oldPassengers = name + ",1," + id_code;
                    data_Buy += "&oldPassengers=" + System.Web.HttpUtility.UrlEncode(oldPassengers, System.Text.Encoding.GetEncoding("UTF-8"));
                    data_Buy += "&passenger_1_seat=" + seat;   // 1硬座/3硬卧/4软卧
                    data_Buy += "&passenger_1_seat_detail_select=0";
                    data_Buy += "&passenger_1_seat_detail=0";
                    data_Buy += "&passenger_1_ticket=1";
                    data_Buy += "&passenger_1_name=" + System.Web.HttpUtility.UrlEncode(name, System.Text.Encoding.GetEncoding("UTF-8"));
                    data_Buy += "&passenger_1_cardtype=1";
                    data_Buy += "&passenger_1_cardno=" + id_code;
                    data_Buy += "&passenger_1_mobileno=" + phone;
                    data_Buy += "&checkbox9=Y";
                    data_Buy += "&oldPassengers=";
                    data_Buy += "&checkbox9=Y";
                    data_Buy += "&oldPassengers=";
                    data_Buy += "&checkbox9=Y";
                    data_Buy += "&oldPassengers=";
                    data_Buy += "&checkbox9=Y";
                    data_Buy += "&oldPassengers=";
                    data_Buy += "&checkbox9=Y";
                    data_Buy += "&randCode=" + imageCodeOrder;              // 验证码
                    data_Buy += "&orderRequest.reserve_flag=A";
                    data_Buy += "&tFlag=dc";
                    html = HttpHelper.GetResponse(url, "POST", data_Buy);
                    string result = html.Split('"')[15];

                    if (result == "Y")
                    {
                        isFirst = false; // 不再加载验证码
                        url = "https://dynamic.12306.cn/otsweb/order/confirmPassengerAction.do?method=getQueueCount";
                        data = "train_date=" + date;
                        data += "&train_no=" + no_Buy;
                        data += "&station=" + no;
                        data += "&seat=" + seat;
                        data += "&from=" + from;
                        data += "&to=" + to;
                        data += "&ticket=" + leftTicketStr;
                        html = HttpHelper.GetResponse(url, "Post", data);

                        // 有票时提交订单
                        if (CheckCount(html, ref date_Out) == true)
                        {
                            break;
                        }
                        else
                        {
                            if (no_List.Count > 1) // 如果无票时并且有票集合>1时重新进行第一次查询 再次查询时当前车次会被忽略 30秒后重新恢复
                            {
                                Search();
                            }
                        }
                    }
                    else if (result.Contains("对不起,由于您取消次数过多"))
                    {
                        Output("对不起,由于您取消次数过多,今日将不能继续受理您的订票请求,程序结束\r\n");
                        isStop = true; // 直接退出
                        break;
                    }
                    else if (result.Contains("输入的验证码不正确") || result.Contains("验证码 必须输入"))
                    {
                        Output("订单验证码比对失败,重新加载...\r\n");
                    }
                    else
                    {
                        Output("未知,再次验证...\r\n");
                    }
                }
                catch { }
            }

            if (isStop == false)  // 账号无误则购买
            {
                Buy();
            }
        }
--------------------编程问答-------------------- 第五步,购票: 完成!
  public void Buy() // 购票
        {
            bool isBuy = false;

            Output("购票\r\n");

            string url = "https://dynamic.12306.cn/otsweb/order/confirmPassengerAction.do?method=confirmSingleForQueueOrder";
            string html = HttpHelper.GetResponse(url, "POST", data_Buy.Substring(0, data_Buy.Length - 9));
            string data = string.Empty;

            string result = html.Split('"')[3];

            if (result == "Y")
            {
                Output("确认订单成功:");
            }
            else
            {
                Output("确认订单失败:" + html.Split('"')[3] + "" + (html.Split('"').Length >= 11 ? html.Split('"')[11] : "") + "\r\n");
            }
            ButtonAbled(); // 按钮可用

            while (true)
            {
                url = "https://dynamic.12306.cn/otsweb/order/myOrderAction.do?method=queryMyOrderNotComplete&leftmenu=Y";
                html = HttpHelper.GetResponse(url, "Post", "");
                int index = html.IndexOf("<div class=\"clear\"></div>");  //-1
                if (index == -1)
                {
                    Output("未完成订单没有数据\r\n");
                    break;
                }
                else
                {
                    html = html.Substring(index);
                    html = html.Substring(0, html.IndexOf("</table>"));
                    html = StripHTML(html);
                    int xxxx = html.IndexOf("\r\n");
                    html = html.Replace("\r\n", "");
                    html = html.Replace(" ", "");
                    html = html.Replace("\t", "");
                    html = html.Replace("\n", "");

                    Output("系统返回:" + html.Substring(16) + "\r\n");
                    if (html.Contains("继续支付"))
                    {
                        OutputMusic();
                        Output(DateTime.Now.ToString("hh-mm-ss") + " 购票成功,程序终止\r\n");
                        isBuy = true;
                        break;
                    }
                    else if (html.Contains("取消订单"))
                    {
                        Output("排队中,2秒后查询结果\r\n");
                        Thread.Sleep(2000);
                    }
                    else
                    {
                        Output("购票未成功\r\n");
                        Output(html.Substring(16) + "\r\n");
                        break;
                    }
                }
            }

            if (isBuy == false)
            {
                Output("0.1秒再次进入购票程序\r\n");
                Thread.Sleep(10);
                Search();
            }
        }
--------------------编程问答-------------------- 这个代码是一位同行写的,用这个订到票的童鞋们要向他表示感谢,里面主要用到HttpWebRequest 和HttpWebResponse 模拟浏览器请求12306网站,组装数据和解析数据

还有一个牛B的地方是自动识别验证码,这个为买票节省了很多时间,也使本程序整个流程能自动完成不用人看管,哈哈

 Cracker ck = new Cracker();
                              string imageCodeLogin = ck.Read((Bitmap)imageLogin);
注意这两行代码,把获取到了验证码图片解析,返回4位的验证字符,牛B啊,源码看了看不懂什么原理 --------------------编程问答-------------------- data_Buy += "&checkbox0=0";
data_Buy += "&orderRequest.train_date=" + date;
data_Buy += "&orderRequest.train_no=" + no_Buy;
data_Buy += "&orderRequest.station_train_code=" + no;
data_Buy += "&orderRequest.to_station_telecode=" + to;
--------------------------------------------------
这些参数是怎么知道的?
昨晚12306把这些调整了 --------------------编程问答-------------------- 牛叉啊,楼猪膜拜 --------------------编程问答-------------------- 牛人啊,顶一个 --------------------编程问答-------------------- HttpWebRequest Post参数是怎么知道呢? --------------------编程问答-------------------- 能抢到票吗? --------------------编程问答-------------------- 只有debug目录,楼主上传完整的源码吧 --------------------编程问答-------------------- 谢谢分享。。 --------------------编程问答-------------------- 屌爆了!屌爆了!屌爆了!屌爆了! --------------------编程问答-------------------- 求完整工程。膜拜。 --------------------编程问答-------------------- 楼主上传的不是源代码,郁闷。 --------------------编程问答-------------------- 哇,太牛了吧 --------------------编程问答-------------------- 值得学习,看看~~有跌牛哇 --------------------编程问答--------------------
引用 1 楼 wangle1189 的回复:
附件怎么上传呢 ?

楼主把源代码打包上传,让我这小菜鸟学习学习呗..或发我邮箱:181487337@qq.com --------------------编程问答--------------------
引用 23 楼 wangle1189 的回复:
这个代码是一位同行写的,用这个订到票的童鞋们要向他表示感谢,里面主要用到HttpWebRequest 和HttpWebResponse 模拟浏览器请求12306网站,组装数据和解析数据

还有一个牛B的地方是自动识别验证码,这个为买票节省了很多时间,也使本程序整个流程能自动完成不用人看管,哈哈

C# code?12 Cracker ck = new Cracke……

网上有教程,就是把图片上的文字解析出来 --------------------编程问答--------------------
引用 15 楼 q107770540 的回复:


版主大人,你怎么看? --------------------编程问答-------------------- 这个可以用吗?话说明天早晨就想刷下票,试一下呢。。。 --------------------编程问答--------------------
引用 27 楼 lugang386 的回复:
HttpWebRequest Post参数是怎么知道呢?


这个 估计是用loadRunner工具,录制的脚本, --------------------编程问答--------------------
验证码自动识别成功率太低了。只能手动。他没处理好这块功能。 --------------------编程问答-------------------- 哇。。。收藏一下 --------------------编程问答-------------------- 源码下载C#大牛们自己根据需求优化优化,造福我们这些草根淫民啊~~~~~~~ http://download.csdn.net/download/wangle1189/5005657 --------------------编程问答-------------------- 牛,受教了!!! --------------------编程问答--------------------
引用 23 楼 wangle1189 的回复:
这个代码是一位同行写的,用这个订到票的童鞋们要向他表示感谢,里面主要用到HttpWebRequest 和HttpWebResponse 模拟浏览器请求12306网站,组装数据和解析数据

还有一个牛B的地方是自动识别验证码,这个为买票节省了很多时间,也使本程序整个流程能自动完成不用人看管,哈哈

C# code?12 Cracker ck = new Cracke……



不错,图形学的知识 --------------------编程问答-------------------- 这孩子的博客主页被404你懂的了 --------------------编程问答-------------------- 好厉害啊,我刚才试了一下,还真行啊,明天订票就用他了。。。。 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 5分,还是算了吧!~有心无力 --------------------编程问答-------------------- 手抖了一下,点了5分,请问怎么能改成0分呢? --------------------编程问答-------------------- 感谢共享~~~分数少点就更好了 --------------------编程问答-------------------- 求楼主上传源码!!!!! --------------------编程问答--------------------
研究下验证码识别 --------------------编程问答-------------------- 哪位大牛 能改造成c++版本啊 --------------------编程问答-------------------- 做个记号先。。。 --------------------编程问答-------------------- 看起来比较不错,收藏先,多谢楼主。 --------------------编程问答-------------------- 完全不能登录啊,楼主。 --------------------编程问答--------------------

没有轻易用 --------------------编程问答-------------------- 貌似还不错啊  --------------------编程问答--------------------


一直失败 --------------------编程问答-------------------- 表示在验证码这里就堵住了。。登录不上去 是不是12306换了验证啊 --------------------编程问答-------------------- 这东西好像是主人换代码托管地方了,所以会不正常。 --------------------编程问答-------------------- 有个地方我不明白额:
form上的那个textbox填什么?????


for (int j = 0; j < 10000; j++)
                        {
                            stream = HttpHelper.GetResponseImage(url);
                            if (stream != null)
                            {


随机100k次匹配?然后ok????

调试的时候stream 弹出一个

“stream.Length”引发了“System.NotSupportedException”类型的异常
“stream.Position”引发了“System.NotSupportedException”类型的异常
--------------------编程问答-------------------- 12306已经对此进行了修正 现在直接回错误页面了 哈哈 此软件需要升级了 --------------------编程问答--------------------

这个代码是从一个人的混淆代码中 改名字提炼出来的。 --------------------编程问答-------------------- 楼主有 有源码吗或是可以反编译的,或是混淆少些的,发给我下,我给你改改,完善下,其实工具一堆,我个人一直没有用 工具订票。 --------------------编程问答-------------------- 效率还可以 55毫秒。 哈哈  --------------------编程问答-------------------- 求源码..~ --------------------编程问答-------------------- 错误 5 无法将文件“C:\Users\Administrator\Desktop\Tickets\Sanmi.12306\Someone Like You.mp3”复制到“bin\Debug\Someone Like You.mp3”。未能找到文件“C:\Users\Administrator\Desktop\Tickets\Sanmi.12306\Someone Like You.mp3”。 Sanmi.12306
这个算什么 --------------------编程问答-------------------- 该更新了 已经不能用了 --------------------编程问答-------------------- 在那个登录的地方卡住了,好像是12306加的参数了! --------------------编程问答-------------------- 这个程序是不是还调用什么别的东西?怎么还有MP3的事 --------------------编程问答-------------------- 应该是登录的条件那里要加什么东东。。。。 --------------------编程问答-------------------- 我晕死,下午铁道部又修改了登录方式了,现在又不能登录了,悲剧 --------------------编程问答-------------------- 那个MP3可以去掉的。删掉就好了。 --------------------编程问答-------------------- 很多都失效了。

苦了很多没票回家的兄弟了。 --------------------编程问答-------------------- 看看,能用吗?? --------------------编程问答-------------------- 已经变了,现在已经登陆不了啦
谁更新一下呢 --------------------编程问答-------------------- 听说要禁止了,不知道行不行 --------------------编程问答-------------------- 别写了,再写约gxb你去喝茶 --------------------编程问答-------------------- 这个可以有,看看可以购票不 --------------------编程问答-------------------- 好像很厉害的样子,果断要研究研究,春运抢票不容易啊 --------------------编程问答--------------------
引用 24 楼 51Crack 的回复:
data_Buy += "&checkbox0=0";
data_Buy += "&orderRequest.train_date=" + date;
data_Buy += "&orderRequest.train_no=" + no_Buy;
data_Buy += "&orderRequest.station_train_cod……

而且听说一旦客户端有抢票行为,其IP会被封10分钟,此时用户查不到任何资料、无法操作,但是没有提示被封(也就是用户根本不知道自己被封)。 --------------------编程问答-------------------- 测试过完全不能用啊,12306已经升级了 --------------------编程问答--------------------
引用 65 楼 qiaohuyue 的回复:
这个代码是从一个人的混淆代码中 改名字提炼出来的。

哥们,能否把代码发一份给我。
哇,你都用WIN8了?我咋就用得不习惯呢。

我邮箱:liuxinhuahao@163.com --------------------编程问答-------------------- 留个记号 学习一下! --------------------编程问答-------------------- --------------------编程问答-------------------- 已经不能用了,哪位大牛更新下子 --------------------编程问答-------------------- 怎么总是抛异常呢? --------------------编程问答-------------------- 留名 以后再下 --------------------编程问答-------------------- 牛呀!!!可以发一下源代码给我们学习学习下吗???我的邮箱645022978@qq.com --------------------编程问答-------------------- 要更新了!
程序一运行,登陆后就出错了 --------------------编程问答-------------------- 发下源码,学习学习啊,1669623814@qq.com --------------------编程问答-------------------- 要更新了!
程序一运行,登陆后就出错了  --------------------编程问答-------------------- 5分啊。。。。 --------------------编程问答-------------------- s没分哇 --------------------编程问答--------------------
引用 83 楼 sp1234 的回复:
引用 24 楼 51Crack 的回复:data_Buy += "&amp;checkbox0=0";
data_Buy += "&amp;orderRequest.train_date=" + date;
data_Buy += "&amp;orderRequest.train_no=" + no_Buy;
data_Buy += "&am……


那帮技术员就知道封号,怎么不把系统弄好点。。。 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 除
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,