winform联网查询

宇不会停 发布于 2013/11/22 19:30
阅读 332
收藏 0
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using System.Data.OleDb;
using System.IO;
using System.Net;
using LitJson;


namespace _2306余票查询系统
{
    class JsonData
    {
        public string datas;
        public string time;
    }
    class Tickets
    {
        public DataTable nameTable;


        public Tickets()
        {


        }


        public string getTickets(string start, string dest, string time,DataTable table)
        {
            WebClient web = new WebClient();
            string url =String.Format("http://dynamic.12306.cn/otsquery/query/queryRemanentTicketAction.do?method=queryLeftTicket&"+
                                        "orderRequest.train_date={0}&orderRequest.from_station_telecode={1}&"+
                                        "orderRequest.to_station_telecode={2}&orderRequest.train_no=&trainPassType=QB"+
                                        "&trainClass=QB%23D%23Z%23T%23K%23QT%23&includeStudent=00&seatTypeAndNum=&orderRequest.start_time_str=00%3A00--24%3A00",
                                        time,start,dest);


            web.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
            web.Headers.Add("Referer", "http://dynamic.12306.cn/otsquery/query/queryRemanentTicketAction.do?method=init");


            string content=Encoding.UTF8.GetString( web.DownloadData(url));
            content = System.Text.RegularExpressions.Regex.Replace(content, "<[^>]+>", "");
            content = System.Text.RegularExpressions.Regex.Replace(content, "&[^;]+;", "");
            content = System.Text.RegularExpressions.Regex.Replace(content, "n", "");
            content = System.Text.RegularExpressions.Regex.Replace(content, @"\\", "");
            try
            {
                JsonData data = JsonMapper.ToObject<JsonData>(content);
                string[] arrays = data.datas.Split(',');
                table.Clear();
                for (int i = 0; i < arrays.Length; i++)
                {
                    string tmp = arrays[i];
                    if (tmp.Length <= 0)
                        continue;
                    int row = i / table.Columns.Count;
                    int col = i % table.Columns.Count;




                    if (row + 1 > table.Rows.Count)
                    {
                        table.Rows.Add(table.NewRow());
                    }
                    table.Rows[row][col] = tmp;
                }
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message+"  "+content);
            }


            return content;
        }
    }
}
这是火车票查询winform程序中建的一个tickets类,我想问      string url =String.Format("http://dynamic.12306.cn/otsquery/query/queryRemanentTicketAction.do?method=queryLeftTicket&"+
                                        "orderRequest.train_date={0}&orderRequest.from_station_telecode={1}&"+
                                        "orderRequest.to_station_telecode={2}&orderRequest.train_no=&trainPassType=QB"+
                                        "&trainClass=QB%23D%23Z%23T%23K%23QT%23&includeStudent=00&seatTypeAndNum=&orderRequest.start_time_str=00%3A00--24%3A00",
                                        time,start,dest); 这段代码里method=queryLeftTicket是如何得到的?这段字符串除了这个,都能在12306网站车票查询页面的源代码里找到,method不就有get 和post两个选择吗?
加载中
返回顶部
顶部