网站建设华网天下公司如何判断网站是响应式的还是

当前位置: 首页 > news >正文

网站建设华网天下公司,如何判断网站是响应式的还是,随州哪里有网络推广方案,站酷网vi设计前段时间一直使用“车票无忧”在抢票#xff08;最开始觉得蛮好用#xff0c;而且没什么时间#xff0c;就先用着了。#xff09; 不管免费版还是收费版问题如下#xff1a; 1#xff09;不支针对同一批列车按席别优先级进行买票。#xff08;比如有卧铺买卧铺#xff… 前段时间一直使用“车票无忧”在抢票最开始觉得蛮好用而且没什么时间就先用着了。 不管免费版还是收费版问题如下 1不支针对同一批列车按席别优先级进行买票。比如有卧铺买卧铺没有卧铺买硬座硬座也没有买软卧在没有就买站票 2不支持对同一批列车按时间优先级进行买票。比如先买2月5号没有买2月4日再没有卖2月3日 PS因为买到一张不想要的票但是又过了放票时间所以开着“车票无忧”打断捡漏发现不符合个人需求。   所以打算最近抽出点时间来自己做一个自己的“火车票不发愁”工具(^__^) 嘻嘻……   遇到问题 1)The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.   在request WebRequest.Create(url) as HttpWebRequest;之前加入   ServicePointManager.ServerCertificateValidationCallback new RemoteCertificateValidationCallback(CheckValidationResult);   private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)        {            return true; //总是接受          } 2Post过去没有返回登录错误   跟踪报文发现包头不对加入如下包头后正常       request.Headers.Add(Pragma, no-cache);          request.Headers.Add(Cache-Control, no-cache);          request.Headers.Add(X-Requested-With, XMLHttpRequest);   第一步构建HttpHelper HttpHelper 1 using System;2 using System.Collections.Generic;3 using System.IO;4 using System.Linq;5 using System.Net;6 using System.Net.Security;7 using System.Security.Cryptography.X509Certificates;8 using System.Text;9 using System.Threading.Tasks;10 11 namespace WindowsFormsApplication112 {13 public class HttpHelper14 {15 private static readonly string DefaultUserAgent Mozilla/6.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120131 Firefox/14.0;16 /// summary 17 /// 创建GET方式的HTTP请求 18 /// /summary 19 /// param nameurl请求的URL/param 20 /// param nametimeout请求的超时时间/param 21 /// param nameuserAgent请求的客户端浏览器信息可以为空/param 22 /// param namecookies随同HTTP请求发送的Cookie信息如果不需要身份验证可以为空/param 23 /// returns/returns 24 public static HttpWebResponse CreateGetHttpResponse(string url, int? timeout, string userAgent, CookieCollection cookies, string Referer )25 {26 if (string.IsNullOrEmpty(url))27 {28 throw new ArgumentNullException(url);29 }30 31 HttpWebRequest request;32 if (url.StartsWith(https, StringComparison.OrdinalIgnoreCase))33 {34 ServicePointManager.ServerCertificateValidationCallback new RemoteCertificateValidationCallback(CheckValidationResult);35 request WebRequest.Create(url) as HttpWebRequest;36 request.ProtocolVersion HttpVersion.Version10;37 }38 else39 {40 request WebRequest.Create(url) as HttpWebRequest;41 }42 request.Method GET;43 request.Referer Referer;44 request.Accept text/html,application/xhtmlxml,application/xml;q0.9,/;q0.8;45 request.ContentType application/x-www-form-urlencoded;46 47 request.UserAgent DefaultUserAgent;48 if (!string.IsNullOrEmpty(userAgent))49 {50 request.UserAgent userAgent;51 }52 if (timeout.HasValue)53 {54 request.Timeout timeout.Value;55 }56 if (cookies ! null)57 {58 request.CookieContainer new CookieContainer();59 request.CookieContainer.Add(cookies);60 }61 return request.GetResponse() as HttpWebResponse;62 }63 /// summary 64 /// 创建POST方式的HTTP请求 65 /// /summary 66 /// param nameurl请求的URL/param 67 /// param nameparameters随同请求POST的参数名称及参数值字典/param 68 /// param nametimeout请求的超时时间/param 69 /// param nameuserAgent请求的客户端浏览器信息可以为空/param 70 /// param namerequestEncoding发送HTTP请求时所用的编码/param 71 /// param namecookies随同HTTP请求发送的Cookie信息如果不需要身份验证可以为空/param 72 /// returns/returns 73 public static HttpWebResponse CreatePostHttpResponse(string url, IDictionarystring, string parameters, int? timeout, string userAgent, Encoding requestEncoding, CookieCollection cookies, string Referer)74 {75 if (string.IsNullOrEmpty(url))76 {77 throw new ArgumentNullException(url);78 }79 if (requestEncoding null)80 {81 throw new ArgumentNullException(requestEncoding);82 }83 HttpWebRequest request null;84 //如果是发送HTTPS请求 85 if (url.StartsWith(https, StringComparison.OrdinalIgnoreCase))86 {87 ServicePointManager.ServerCertificateValidationCallback new RemoteCertificateValidationCallback(CheckValidationResult);88 request WebRequest.Create(url) as HttpWebRequest;89 request.ProtocolVersion HttpVersion.Version10;90 }91 else92 {93 request WebRequest.Create(url) as HttpWebRequest;94 }95 request.Method POST;96 request.Headers.Add(Accept-Language, zh-CN,en-GB;q0.5);97 98 if (cookies ! null)99 { 100 request.CookieContainer new CookieContainer(); 101 request.CookieContainer.Add(cookies); 102 } 103 104 request.Headers.Add(Pragma, no-cache); 105 request.Headers.Add(Cache-Control, no-cache); 106 request.Headers.Add(X-Requested-With, XMLHttpRequest); 107 request.Accept text/html,application/xhtmlxml,application/xml;q0.9,/;q0.8; 108 request.ContentType application/x-www-form-urlencoded; 109 request.Referer Referer; 110 111 if (!string.IsNullOrEmpty(userAgent)) 112 { 113 request.UserAgent userAgent; 114 } 115 else 116 { 117 request.UserAgent DefaultUserAgent; 118 } 119 120 if (timeout.HasValue) 121 { 122 request.Timeout timeout.Value; 123 } 124 125 request.Expect string.Empty; 126 127 //如果需要POST数据
128 if (!(parameters null || parameters.Count 0)) 129 { 130 StringBuilder buffer new StringBuilder(); 131 int i 0; 132 foreach (string key in parameters.Keys) 133 { 134 if (i 0) 135 { 136 buffer.AppendFormat({0}{1}, key, parameters[key]); 137 } 138 else 139 { 140 buffer.AppendFormat({0}{1}, key, parameters[key]); 141 } 142 i; 143 } 144 byte[] data requestEncoding.GetBytes(buffer.ToString()); 145 using (Stream stream request.GetRequestStream()) 146 { 147 stream.Write(data, 0, data.Length); 148 } 149 } 150 return request.GetResponse() as HttpWebResponse; 151 } 152 153 private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) 154 { 155 return true; //总是接受
156 } 157 } 158 } 第二步登录首页获取Cookie 登录首页获取Cookie 1 private const string UrlMainPage https://dynamic.12306.cn/otsweb/main.jsp; 2 3 /// summary4 /// 登录首页获取Cookie5 /// /summary6 /// param nameuserAgent/param7 /// param namecookie/param8 public static void GetMainPage(int? timeout null, string userAgent null, CookieCollection cookie null)9 { 10 var response HttpHelper.CreateGetHttpResponse(UrlMainPage, timeout, userAgent, cookie ?? Cookies, ); 11 12 cookies.Add(response.Cookies); 13 } 第三步获取登录验证码 获取登录验证码 1 private const string UrlLoginImage http://dynamic.12306.cn/otsweb/passCodeAction.do?randsjrand;2 3 /// summary4 /// 获取登录图片5 /// /summary6 /// param nameuserAgent/param7 /// param namecookie/param8 /// returns/returns9 public static Bitmap GetLoginImage(int? timeout null, string userAgent null, CookieCollection cookie null) 10 { 11 try 12 { 13 var response HttpHelper.CreateGetHttpResponse(UrlLoginImage, timeout, userAgent, cookie ?? Cookies); 14 Stream resStream response.GetResponseStream();//得到验证码数据流 15 return new Bitmap(resStream);//初始化Bitmap图片 16 } 17 catch (Exception) 18 { 19 return null; 20 } 21 } 第四步登录 12306的登录分两步 1登录http://dynamic.12306.cn/otsweb/loginAction.do?methodloginAysnSuggest页面获取登录随机码   返回Json格式例如{loginRand:421,randError:Y}。 2将信息Post到http://dynamic.12306.cn/otsweb/loginAction.do?methodlogin进行登录 为方便解析Json使用最近在研究的IronJs解析Json。 登录 1 private const string UrlLoginStep1 http://dynamic.12306.cn/otsweb/loginAction.do?methodloginAysnSuggest;2 private const string UrlLoginStep2 http://dynamic.12306.cn/otsweb/loginAction.do?methodlogin;3 4 /// summary5 /// 登录6 /// /summary7 /// param nameuserName/param8 /// param namepass/param9 /// param nameverificationCode/param 10 /// param nametimeout/param 11 /// param nameuserAgent/param 12 /// param namecookie/param 13 /// returns/returns 14 public static LoginResponse Login(string userName, string pass, string verificationCode 15 , int? timeout null, string userAgent null, CookieCollection cookie null) 16 { 17 // 获取登录随机验证码loginRand 18 string str ; 19 var response HttpHelper.CreateGetHttpResponse(UrlLoginStep1, timeout, userAgent, cookie ?? Cookies, http://dynamic.12306.cn/otsweb/loginAction.do?methodinit); 20 cookies.Add(response.Cookies); 21 22 try 23 { 24 using (StreamReader reader new StreamReader(response.GetResponseStream(), Encoding.UTF8)) 25 { 26 str reader.ReadToEnd(); 27 } 28 29 if (str.Length 50) 30 { 31 return new LoginResponse() { IsLogined false, Message 网络异常请稍后重试。, type ErrorType.NetworkError }; 32 } 33 } 34 catch (Exception) 35 { 36 return new LoginResponse() { IsLogined false, Message 网络可能存在问题请您重试一下, type ErrorType.NetworkError }; 37 } 38 39 // 解析第一次返回值获取登录随机验证码loginRand执行登录 40 var v new IronJS.Hosting.CSharp.Context(); 41 string strJson var json str; 42 dynamic dy v.Execute(strJson); 43 44 Dictionarystring, string dic new Dictionarystring, string(); 45 dic.Add(loginUser.user_name, userName); 46 dic.Add(nameErrorFocus, ); 47 dic.Add(user.password, pass); 48 dic.Add(passwordErrorFocus, ); 49 dic.Add(randCode, verificationCode); 50 dic.Add(randErrorFocus, ); 51 dic.Add(loginRand, dy.loginRand); 52 response HttpHelper.CreatePostHttpResponse(UrlLoginStep2, dic, timeout, userAgent, Encoding.UTF8, cookie ?? Cookies, http://dynamic.12306.cn/otsweb/loginAction.do?methodinit); 53 54 cookies.Add(response.Cookies); 55 56 try 57 { 58 using (StreamReader reader new StreamReader(response.GetResponseStream(), Encoding.UTF8)) 59 { 60 str reader.ReadToEnd(); 61 } 62 } 63 catch (Exception) 64 { 65 return new LoginResponse() { IsLogined false, Message 网络可能存在问题请您重试一下, type ErrorType.NetworkError }; 66 } 67 68 Regex logined new Regex([^]*? 您好); 69 70 Regex networkError new Regex(网络可能存在问题请您重试一下); 71 72 Regex verificationError new Regex(请输入正确的验证码); 73 74 Regex PasswordError new Regex(密码输入错误); 75 76 if (logined.IsMatch(str)) 77 { 78 return new LoginResponse() { IsLogined true, Message , type ErrorType.None, LoginName logined.Matches(str)[0].Value }; 79 } 80 else if (verificationError.IsMatch(str)) 81 { 82 return new LoginResponse() { IsLogined false, Message 请输入正确的验证码, type ErrorType.NetworkError }; 83 } 84 else if (networkError.IsMatch(str)) 85 { 86 return new LoginResponse() { IsLogined false, Message 网络可能存在问题请您重试一下, type ErrorType.NetworkError }; 87 } 88 else if (PasswordError.IsMatch(str)) 89 { 90 return new LoginResponse() { IsLogined false, Message 密码错误, type ErrorType.PassordError }; 91 } 92 93 return new LoginResponse() { IsLogined false, Message 未知错误, type ErrorType.OtherError }; 94 } 实体类枚举 1 class LoginResponse 2 { 3 public bool IsLogined; 4 public string Message; 5 public string LoginName; 6 public ErrorType type; 7 } 8 9 public enum ErrorType 10 { 11 None, 12 NetworkError, 13 VerificationError, 14 PassordError, 15 OtherError 16 } 第五步获取常用联系人 获取常用联系人 1 private const string UrlFavoriteContacts http://dynamic.12306.cn/otsweb/passengerAction.do?methodgetPagePassengerAll; 2 3 /// summary4 /// 获取常用联系人5 /// /summary6 /// param nametimeout/param7 /// param nameuserAgent/param8 /// param namecookie/param9 public static ListContact GetFavoriteContacts(int pageIndex, int pageSize, out int count, int? timeout null, string userAgent null, 10 CookieCollection cookie null) 11 { 12 ListContact contacts new ListContact(); 13 count 0; 14 Dictionarystring, string dic new Dictionarystring, string(); 15 dic.Add(pageIndex, pageIndex.ToString()); 16 dic.Add(pageSize, pageSize.ToString()); 17 dic.Add(passenger_name, 请输入汉字或拼音首字母); 18 var response HttpHelper.CreatePostHttpResponse(UrlFavoriteContacts, dic, timeout, userAgent, Encoding.UTF8, cookie ?? Cookies, https://dynamic.12306.cn/otsweb/passengerAction.do?methodinitUsualPassenger12306); 19 20 cookies.Add(response.Cookies); 21 dynamic dy; 22 try 23 { 24 using (StreamReader reader new StreamReader(response.GetResponseStream(), Encoding.UTF8)) 25 { 26 var str reader.ReadToEnd(); 27 28 var v new IronJS.Hosting.CSharp.Context(); 29 string strJson var json str; 30 31 dy v.Execute(strJson); 32 33 count (int)dy.recordCount; 34 35 for (int i 0; i dy.rows.length; i) 36 { 37 contacts.Add(new Contact() 38 { 39 Name dy.rows[i].passenger_name, 40 IdTypeName dy.rows[i].passenger_id_type_name, 41 IdNo dy.rows[i].passenger_id_no, 42 IdTypeCode dy.rows[i].passenger_id_type_code, 43 Mobile dy.rows[i].mobile_no, 44 PassengerTypeName dy.rows[i].passenger_type_name, 45 PassengerType dy.rows[i].passenger_type 46 }); 47 } 48 } 49 } 50 catch (Exception) 51 { 52 53 } 54 55 return contacts; 56 } Winfrom页面调用 为了偷偷懒用了 Control.CheckForIllegalCrossThreadCalls false;高手们直接忽略吧。。 WinFrom调用 1 public partial class Form1 : Form2 {3 public Form1()4 {5 InitializeComponent();6 7 8 Control.CheckForIllegalCrossThreadCalls false;9 10 System.Threading.ThreadPool.QueueUserWorkItem((m) 11 { 12 _12306Class.GetMainPage(cookie: new CookieCollection()); 13 GetLoginImage(); 14 }); 15 } 16 17 private void GetLoginImage() 18 { 19 pictureBox1.Image _12306Class.GetLoginImage(); 20 } 21 22 private void button1_Click(object sender, EventArgs e) 23 { 24 System.Threading.ThreadPool.QueueUserWorkItem((m) 25 { 26 button1.Enabled false; 27 28 checkedListBox1.Items.Clear(); 29 30 var v _12306Class.Login(textBox1.Text, textBox2.Text, textBox3.Text); 31 if (v.IsLogined) 32 { 33 int count 0; 34 int pageSize 7; 35 int pageIndex 0; ; 36 do 37 { 38 ListContact contacts _12306Class.GetFavoriteContacts(pageIndex, pageSize, out count); 39 40 foreach (var contact in contacts) 41 { 42 checkedListBox1.Items.Add(string.Format({0}\t{1}\t{2}, contact.Name, contact.IdTypeName, contact.IdNo)); 43 } 44 45 } while ((pageIndex 1) * pageSize count); 46 } 47 else 48 { 49 MessageBox.Show(v.Message); 50 button1.Enabled true; 51 } 52 }); 53 } 54 55 private void button2_Click(object sender, EventArgs e) 56 { 57 GetLoginImage(); 58 } 59 60 61 } 交互报文 main.jsp 1 GET /otsweb/main.jsp HTTP/1.02 Accept: text/html,application/xhtmlxml,application/xml;q0.9,/;q0.83 Content-Type: application/x-www-form-urlencoded4 User-Agent: Mozilla/6.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120131 Firefox/14.05 Host: dynamic.12306.cn6 Connection: Keep-Alive7 8 9 10 11 —————————————————————- 12 13 14 15 HTTP/1.1 200 OK 16 Date: Wed, 30 Jan 2013 09:26:23 GMT 17 Server: Apache-Coyote/1.1 18 X-Powered-By: Servlet 2.5; JBoss-5.0/JBossWeb-2.1 19 Set-Cookie: JSESSIONIDDF8E17DA665A67ECD327B05D510EC3AA; Path/otsweb 20 Content-Type: text/html;charsetUTF-8 21 Set-Cookie: BIGipServerotsweb2513699082.36895.0000; path/ 22 X-Cache: MISS from cache.51cdn.com 23 X-Via: 1.1 swdx14:8361 (Cdn Cache Server V2.0) 24 Connection: close passCodeAction.do 1 GET /otsweb/passCodeAction.do?randsjrand HTTP/1.12 Accept: text/html,application/xhtmlxml,application/xml;q0.9,/;q0.83 Content-Type: application/x-www-form-urlencoded4 User-Agent: Mozilla/6.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120131 Firefox/14.05 Host: dynamic.12306.cn6 Cookie: JSESSIONIDDF8E17DA665A67ECD327B05D510EC3AA; BIGipServerotsweb2513699082.36895.00007 8 ————————————————————————9 10 HTTP/1.1 200 OK 11 Date: Wed, 30 Jan 2013 09:26:27 GMT 12 Server: Apache-Coyote/1.1 13 X-Powered-By: Servlet 2.5; JBoss-5.0/JBossWeb-2.1 14 Pragma: No-cache 15 Cache-Control: no-cache 16 Expires: Thu, 01 Jan 1970 00:00:00 GMT 17 Content-Type: image/jpeg 18 Transfer-Encoding: chunked 19 X-Cache: MISS from cache.51cdn.com 20 X-Via: 1.1 swdx15:8361 (Cdn Cache Server V2.0) 21 Connection: keep-alive 22 23 21 24 PNG 25 loginAction.do 1 GET /otsweb/loginAction.do?methodloginAysnSuggest HTTP/1.12 Referer: http://dynamic.12306.cn/otsweb/loginAction.do?methodinit3 Accept: text/html,application/xhtmlxml,application/xml;q0.9,/;q0.84 Content-Type: application/x-www-form-urlencoded5 User-Agent: Mozilla/6.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120131 Firefox/14.06 Host: dynamic.12306.cn7 Cookie: JSESSIONIDDF8E17DA665A67ECD327B05D510EC3AA; BIGipServerotsweb2513699082.36895.00008 9 10 11 ——————————————————————— 12 13 14 HTTP/1.1 200 OK 15 Date: Wed, 30 Jan 2013 09:26:33 GMT 16 Server: Apache-Coyote/1.1 17 X-Powered-By: Servlet 2.5; JBoss-5.0/JBossWeb-2.1 18 Pragma: no-cache 19 Cache-Control: no-cache 20 Expires: Wed, 31 Dec 1969 23:59:59 GMT 21 Content-Type: text/html;charsetUTF-8 22 Content-Length: 35 23 X-Cache: MISS from cache.51cdn.com 24 X-Via: 1.1 swdx15:8361 (Cdn Cache Server V2.0) 25 Connection: keep-alive 26 27 {loginRand:896,randError:Y} loginAction.do?methodlogin 1 POST /otsweb/loginAction.do?methodlogin HTTP/1.12 Accept-Language: zh-CN,en-GB;q0.53 Pragma: no-cache4 Cache-Control: no-cache5 X-Requested-With: XMLHttpRequest6 Accept: text/html,application/xhtmlxml,application/xml;q0.9,/;q0.87 Content-Type: application/x-www-form-urlencoded8 Referer: http://dynamic.12306.cn/otsweb/loginAction.do?methodinit9 User-Agent: Mozilla/6.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120131 Firefox/14.0 10 Host: dynamic.12306.cn 11 Cookie: JSESSIONIDDF8E17DA665A67ECD327B05D510EC3AA; BIGipServerotsweb2513699082.36895.0000 12 Content-Length: 142 13 Expect: 100-continue 14 15 loginUser.user_name253180123qq.comnameErrorFocususer.password12345678passwordErrorFocusrandCode94ctrandErrorFocusloginRand896 16 17 18 19 —————————————————————————– 20 21 HTTP/1.1 200 OK 22 Date: Wed, 30 Jan 2013 09:26:34 GMT 23 Server: Apache-Coyote/1.1 24 X-Powered-By: Servlet 2.5; JBoss-5.0/JBossWeb-2.1 25 Pragma: no-cache 26 Cache-Control: no-cache 27 Expires: Wed, 31 Dec 1969 23:59:59 GMT 28 Content-Type: text/html;charsetUTF-8 29 Transfer-Encoding: chunked 30 X-Cache: MISS from cache.51cdn.com 31 X-Via: 1.1 swdx15:8361 (Cdn Cache Server V2.0) 32 Connection: keep-alive 33 34 2000 passengerAction.do?methodgetPagePassengerAll 1 POST /otsweb/passengerAction.do?methodgetPagePassengerAll HTTP/1.12 Accept-Language: zh-CN,en-GB;q0.53 Pragma: no-cache4 Cache-Control: no-cache5 X-Requested-With: XMLHttpRequest6 Accept: text/html,application/xhtmlxml,application/xml;q0.9,/;q0.87 Content-Type: application/x-www-form-urlencoded8 Referer: https://dynamic.12306.cn/otsweb/passengerAction.do?methodinitUsualPassenger123069 User-Agent: Mozilla/6.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120131 Firefox/14.0 10 Host: dynamic.12306.cn 11 Cookie: JSESSIONIDDF8E17DA665A67ECD327B05D510EC3AA; BIGipServerotsweb2513699082.36895.0000 12 Content-Length: 71 13 Expect: 100-continue 14 15 pageIndex0pageSize7passenger_name请输入汉字或拼音首字母 16 17 18 19 ———————————————————————————– 20 21 22 23 HTTP/1.1 200 OK 24 Date: Wed, 30 Jan 2013 09:26:35 GMT 25 Server: Apache-Coyote/1.1 26 X-Powered-By: Servlet 2.5; JBoss-5.0/JBossWeb-2.1 27 Pragma: no-cache 28 Cache-Control: no-cache 29 Expires: Wed, 31 Dec 1969 23:59:59 GMT 30 Content-Type: text/html;charsetUTF-8 31 Content-Length: 1329 32 X-Cache: MISS from cache.51cdn.com 33 X-Via: 1.1 swdx15:8361 (Cdn Cache Server V2.0) 34 Connection: keep-alive 35 36 {recordCount:2,rows:[{address:,born_date:{date:25,day:0,hours:13,minutes:39,month:10,seconds:36,time:1353821976686,timezoneOffset:-480,year:112},code:1,country_code:,email:,first_letter:,isUserSelf:N,mobile_no:12345678901,old_passenger_id_no:,old_passenger_id_type_code:,old_passenger_name:,passenger_flag:0,passenger_id_no:123456789012345678,passenger_id_type_code:1,passenger_id_type_name:二代身份证,passenger_name:XX,passenger_type:1,passenger_type_name:成人,phone_no:,postalcode:,recordCount:2,sex_code:,sex_name:,studentInfo:null},{address:,born_date:{date:20,day:3,hours:0,minutes:0,month:5,seconds:0,time:645807600000,timezoneOffset:-540,year:90},code:2,country_code:CN,email:253180123qq.com,first_letter:COSMOKEY,isUserSelf:Y,mobile_no:12345678901,old_passenger_id_no:,old_passenger_id_type_code:,old_passenger_name:,passenger_flag:0,passenger_id_no:123456789012345678,passenger_id_type_code:1,passenger_id_type_name:二代身份证,passenger_name:XXX,passenger_type:1,passenger_type_name:成人,phone_no:,postalcode:,recordCount:2,sex_code:M,sex_name:男,studentInfo:null}]} 截图   Demo下载 转载于:https://www.cnblogs.com/comsokey/archive/2013/01/30/12306Task.html