每天我都在烂尾和不烂尾间徘徊。每次我都想着累死累死累死,我这么彷徨这么无助这么凄凉,连路灯都用昏黄的灯光为我默泪,为什么我还要在这边继续着有人看或没人看的事,写能怎么样,断更又能怎么样。只是强迫症的独特天赋在鞭策着我,于是每次都会极不情愿地拿起键盘,强大的羞耻心在时刻地提醒着我,如果真的断更了,下一次上厕所你一定会忘记带纸,你就只能凄凉着等着有人路过大方地施舍给你一张草纸,因为你连人民币都没有,你从来不会在大号的时候带着钱包。说到这里,下次记得放一卷手纸在卫生间的角落里。。。
上一章写到已经成功获得了验证码并且输入。那么输入后能干嘛?当然先登录了
7.1 先完成一些辅助函数和登录界面
创建登录界面应该是极为简单的事情,就不多说了。我们这里设计个登录界面如下。
然后写上了俩调用函数。
...
木魚
9年前 (2015-08-18) 18020℃ 15评论
23喜欢
前言:这段时间太忙,这个系列几乎没抽出时间来写。现在来慢慢继续挤牙膏。关于FSLIB.NETWORK网络库或这个演示项目有任何问题的,请在问答社区(http://ask.fishlee.net/category-21)中反馈提问
6.1 验证码流程分析
我们照例打开Fiddler抓包,在跟踪登录和提交流程后,我们可以很容易看到相关的请求。我们先到登录12306的页面上看看样子。
看到了让人抓狂的图片验证码。其实我对这验证码还是好评的。让我们先来试一下验证码错误是什么情况。两行四列图片,我们先点击第一行第一张的左上角,和第二行第一张的左下角,也就是截图中标记的两个区域。这么做的原因是为了待会儿的提交测试做坐标映射(因为提交出去的信息不一定就是相对于图片本身的原点的)。也就是这样。
...
木魚
9年前 (2015-08-12) 9703℃ 3评论
17喜欢
在上次提交之后到现在开始本章之前,源码库做了一些修改,主要是修正了两个地方的错误,并完善了一下不是很关键的流程。为了简便起见,这里不做展开。变更的内容为:Session增加了状态变更的事件通知以及登录信息;主窗口退出按钮增加处理事件;登录和注销的状态切换绑定到工具栏的登录和注销按钮上;登录信息中增加了当前登录用户的真实名称。
5.1 查票流程
5.1.1 流程分析
其实查票是一个相对比较简单的流程。掏出Fiddler回去看抓包的结果。简单的浏览请求后,只要不是眼瞎应该都可以看到请求。。。
(这里为了方便,用的是Fiddler抓包。其实用浏览器的开发者工具抓包效果是一样的,某些方面可能比Fiddler还方便,比如看数据预览)
右侧很明显可以看到是我们有兴趣的数据,然后回过头看看...
木魚
9年前 (2015-06-10) 15692℃ 21评论
16喜欢
咳咳……本来是打算上个周末弄出本章的,结果因为种种种种时间没安排开的关系,就给忽略了(其实是因为写搜资源的那个软件花了过多的时间……),所以现在赶紧来补上,免得太监了。
本章内容
本章内将会完成如下事情:
构造主窗体并将大致界面构造出来
将UI界面与当前订票的上下文关系关联起来
完成基本数据的准备和相关过程中的界面等待
4.1 构造大致界面
为了简便起见,这里我们约定使用比较简单的界面布局,暂时不添加复杂的功能选项界面。初步规划的界面如下图所示(这是个原型图,表以为我设计是多么的专业,其实我从来不用这玩意儿,这次拿出来耍耍只是为了装逼):
从原型图可以看出来,这是一个比较简单直接的订票界面,没有考虑到刷票等比较复杂的功能,也并没有设计什么多账户登录的功能。一是这样可以简化设计,比...
木魚
9年前 (2015-06-08) 11156℃ 10评论
11喜欢
3.1 本章前言
从本章开始,将会涉及到具体的开发过程。工欲善其事,必先利其器。话虽如此,但准备工具之前知己知彼还是比较重要的……
3.2 12306流程分析
这里我们从一个典型的用户订票流程来考虑并设计流程。
注意:这里同时已经设置好了Fiddler和过滤器以抓取所有请求,供后面使用。如果此时你还没有进行这样的操作,在这之后每一步可能都需要临时分析,会花费不少多余的时间,强烈建议你现在就抓取一个完整的流程记录。相关的内容请参考上一节。
首先用户进入了查票入口,选择日期和地点。这里以经典的北京–上海为例,时间选择的是7月20日,这里的信息不是关键的信息,可以根据你自己的需要来设置。
点击查询后,会跳转到查询页面,并显示查询结果。
这里假定我们要定G1次列车,点...
木魚
9年前 (2015-05-28) 6654℃ 7评论
9喜欢
2.1 前言
其实要做一个12306的软件版客户端,其核心奥义就是抓住重点扔掉花里胡哨的东东。抓住重点说的就是相关的API接口,花里胡哨的东西说的就是图片啊样式啊之类的东东,对于WEB来说它们是必不可少的,但是对于软件版来说这些则是累赘的东西。
由于一个WEB网站中占用体积大头的往往都是些静态的不会动的无生命物种,因此去掉这些东东既可以提高操作速度也可以减轻服务器的负载需求。虽然大型的网站都有CDN了,但是带宽也是要成本的是不是?虽然这成本和咱并没有什么关系。
既然要用软件去实现WEB接口并实现整个流程,那么在林林总总的HTTP请求中准确地找到相关的请求并正确的识别出请求内部的各个参数就很重要了。
2.2 请求跟踪
一般而言,识别请求是个经验活,而识别请求内容并判断响应内容则是个运气活了…...
木魚
9年前 (2015-05-22) 9842℃ 7评论
14喜欢
本项目是由木鱼发起的一个基于.NET4.5的12306订票客户端。项目使用C#语言,使用FSLib.Network项目作为网络层访问库,主要用于演示目的。
主要原因是因为很多同学希望能借由12306练手,以此打开通往网络编程的大门……选择12306不是没有原因的,因为其复杂多变,又有错综复杂的逻辑关系,又十分具有现实意义,嗯。
12306订票助手.NET的代码由于历史和功能的原因,其体系过于庞大,并不适合(且目前也不能)开放源码。因此重新单独启动这个简单的项目,希望能给予想学习网络编程的同学以帮助。
实现目标
本项目仅包含基本的12306功能实现:
登录
查询
提交订单
更详细进阶的功能将会在之后视情况是否加入。
技术概述
本项目出于演示&练习目的,所以将会使用较新的平台、工具以...
木魚
9年前 (2015-05-19) 8528℃ 4评论
20喜欢