10.6.1变更
增强网络层兼容性,针对错误LSP导致网络层出错的问题进行兼容
其它信息
虽然10.6.1中增加了对网络的兼容性,但如果你在使用10.6版时常出现网络错误、验证码无法拉取等问题,那还是说明你的系统中的网络栈可能存在问题。
可以使用管理员身份运行如下命令重置网络栈:
netsh interface ipv4 reset
netsh interface ipv6 reset
netsh winsock reset
更多信息请参见 http://bbs.fishlee.net/thread-9757-1-1.html。
12306订票助手.NET V10.5(最终版) 发布
...
木魚
8年前 (2016-09-01) 10693℃ 6评论
40喜欢
之前此HTTP库被我安利了很多次(查看相关博客),由于种种原因,现在决定开源出来,基于Apache协议。
这个协议代表什么呢?看图。
开源的2.2.0.0版本变更
相比上个开放的版本(2.0.0.0),主要有如下更新:
响应内容增加 RawStringResult、RawBinaryData、RawStream 属性
增加统一的处理接口,就算响应为40x处理错误,也可以获得对应的JSON返回错误
HttpContext 增加扩展函数 SetAcceptJson、SetAcceptXml、RequestRange 扩展函数
HttpContext 增加 PreviewResponseHeader、ValidateResponseHeader、ResponseContentObjectInt...
木魚
8年前 (2016-08-02) 15789℃ 22评论
46喜欢
FSLIB.NETWORK 是什么?它是一个为HTTP协议设计的高度简便易用且极具功能性的类库。它的由来要追溯到12306订票助手.NET的诞生。在12306订票助手.NET诞生之初,我就有这么一个需求,需要一个用起来十分简单易用且灵活性和强健于一身的网络请求库。
为什么有这些要求呢?因为我懒,所以需要这个类库十分灵活简便易用,最好只要告诉它我有什么然后要什么,它就能给我弄回来。然而12306的种种掉链子谁都知道,所以我也希望这个库足够强健,至少不会因为库本身的因素导致程序崩掉。
所以这个库的存在是十分重要的。然而幸运的是,这个库完善到现在后,基本上符合我的要求。
提示:如果您在此网络库的使用过程中遇到任何问题,请在 问答社区(http://ask.fishlee.net/category...
木魚
8年前 (2016-05-05) 10967℃ 5评论
27喜欢
最近琐事缠身,烦得不行,拖了很久……
概述
2.0版本之所以放弃了1.x版本的序列,是因为变更比较大,存在不少破坏性变更。
详细变更列表
警告:列表中为红色的变更记录为破坏性变更,您可能需要调整现有的代码以匹配当前的库。
HttpClient增加新的Clear()函数,用于重置状态。此操作会清空所有Cookies以及上下文跟踪
请求流封装逻辑细节调整,对极个别情况下出现的流异常增加捕捉
请求数据封装类逻辑修正,现在支持直接将 HttpPostFile 类型作为表单数据上传
HttpContext请求发送流程微调,异步模式下所有代码都以异步模式启动
增加对图片的上传支持(默认保存为JPG)
增加UrlTokenIdentitier功能(默认启用),允许将请求数据标记在URL中
提交数据在GE...
木魚
8年前 (2016-04-05) 7881℃ 6评论
8喜欢
0.概述
FSLib.Network 是订票助手.NET的一个副产物。开始在设计订票助手.NET的时候,我就在策划写一个比较易用的HTTP客户端库来完成底层的操作。由于.NET原生的HttpWebRequest比较复杂难用,而内置的WebClient先天不足。在这种种背景之下,我花了很长的时间来打磨这个网络库。虽然起名叫Network,但是目前专注于HTTP库。这个网络库在订票助手.NET中得到了广泛全面的使用,几乎所有对12306发出的请求都是由它发出的。在订票助手.NET中,最近四个月中,由它发出的请求过亿,其稳定性也是蛮有保证的嘛。
更多介绍和演示,参见 原创FSLib.Network库(目前专注于HTTP的高性能高易用性网络库)。
1.1.6.0变更详情(与1.5.6相比)
修正错...
木魚
9年前 (2015-12-13) 12807℃ 15评论
8喜欢
提示:9月1日腾讯方面已对接口位置添加校验功能,因此暂时无法自定义位置。考虑到此事并没有多大意义,因此目前没有对暂定无解的问题有想解决的动力
0. 摘要
相关说明参见 玩具系列:批量QQ群签到工具(支持自定义位置)。
V2版对相关流程进行了优化,并增强了自定义功能。
1. 更新内容
现在支持检测签到状态,已签到的QQ群会有提示。
现在支持自定义模板,系统内置了一定的模板,同时可自定义。
2. 自定义模板说明
自定义模板可使用软件目录下的 签到句子.txt 文件。
# 文件必须保存为UTF-8编码# 以“#”开始的行是注释,会被软件忽略# 以“$”开始的行是变量行,格式为:<变量名>=<内容1>,<内容2>……# 内容和内容之间可用空格...
木魚
9年前 (2015-08-29) 12084℃ 21评论
35喜欢
0. 啥叫QQ群签到自定义位置?
就是这个。
QQ群签到在手机端是可以自动定位的,PC端没有办法输入位置。然而由于位置太复杂了,想腾讯也没想好怎么过滤(然后也低估了广大人民群众的无聊程度……),所以这个字段并没有过滤什么。
前些日子一个叫 www.diefishfish.com 的网站作者发了一个工具,可以批量签到的,他们玩的很欢快……今天他们跟我喊说那个工具出错了不能用了,于是我就搞了一个山寨的。其实这种工具不需要管理员权限的……
PS,那个作者的域名有点儿跟我死磕到底的意思……他们都问我是不是跟我有仇……
1. 先发工具
先说好了,工具需要 .Net Framework 4.0的支持。如果你启动的时候看到什么无法加载文件的错误,或者什么System.Core之类的东西,可能是你的Fra...
木魚
9年前 (2015-08-28) 19837℃ 17评论
29喜欢
更新综述
8.0.8是一个功能更新版本。本版本最大的变更应该是增强联系人管理功能。而这所有的功能变更,可用下图来表示。
下载信息
更多信息参考订票助手.NET主页。
...
木魚
9年前 (2015-08-21) 6493℃ 6评论
6喜欢
每天我都在烂尾和不烂尾间徘徊。每次我都想着累死累死累死,我这么彷徨这么无助这么凄凉,连路灯都用昏黄的灯光为我默泪,为什么我还要在这边继续着有人看或没人看的事,写能怎么样,断更又能怎么样。只是强迫症的独特天赋在鞭策着我,于是每次都会极不情愿地拿起键盘,强大的羞耻心在时刻地提醒着我,如果真的断更了,下一次上厕所你一定会忘记带纸,你就只能凄凉着等着有人路过大方地施舍给你一张草纸,因为你连人民币都没有,你从来不会在大号的时候带着钱包。说到这里,下次记得放一卷手纸在卫生间的角落里。。。
上一章写到已经成功获得了验证码并且输入。那么输入后能干嘛?当然先登录了
7.1 先完成一些辅助函数和登录界面
创建登录界面应该是极为简单的事情,就不多说了。我们这里设计个登录界面如下。
然后写上了俩调用函数。
...
木魚
9年前 (2015-08-18) 18338℃ 15评论
23喜欢
前言:这段时间太忙,这个系列几乎没抽出时间来写。现在来慢慢继续挤牙膏。关于FSLIB.NETWORK网络库或这个演示项目有任何问题的,请在问答社区(http://ask.fishlee.net/category-21)中反馈提问
6.1 验证码流程分析
我们照例打开Fiddler抓包,在跟踪登录和提交流程后,我们可以很容易看到相关的请求。我们先到登录12306的页面上看看样子。
看到了让人抓狂的图片验证码。其实我对这验证码还是好评的。让我们先来试一下验证码错误是什么情况。两行四列图片,我们先点击第一行第一张的左上角,和第二行第一张的左下角,也就是截图中标记的两个区域。这么做的原因是为了待会儿的提交测试做坐标映射(因为提交出去的信息不一定就是相对于图片本身的原点的)。也就是这样。
...
木魚
9年前 (2015-08-12) 9757℃ 3评论
17喜欢
在上次提交之后到现在开始本章之前,源码库做了一些修改,主要是修正了两个地方的错误,并完善了一下不是很关键的流程。为了简便起见,这里不做展开。变更的内容为:Session增加了状态变更的事件通知以及登录信息;主窗口退出按钮增加处理事件;登录和注销的状态切换绑定到工具栏的登录和注销按钮上;登录信息中增加了当前登录用户的真实名称。
5.1 查票流程
5.1.1 流程分析
其实查票是一个相对比较简单的流程。掏出Fiddler回去看抓包的结果。简单的浏览请求后,只要不是眼瞎应该都可以看到请求。。。
(这里为了方便,用的是Fiddler抓包。其实用浏览器的开发者工具抓包效果是一样的,某些方面可能比Fiddler还方便,比如看数据预览)
右侧很明显可以看到是我们有兴趣的数据,然后回过头看看...
木魚
9年前 (2015-06-10) 15822℃ 21评论
16喜欢
1.5 版变更
本版本主要变动如下。
新增单独的HtmlAgilityPack适配器,支持直接Create<HtmlDocument>请求(单独搜索 ifish 后安装包 network.fishlee.net_html.adapter );
修正当请求发生错误(40x)时会抛出NullReferenceException导致请求失败的BUG;
本版本无破坏性变更。
...
木魚
9年前 (2015-06-09) 7417℃ 6评论
3喜欢
咳咳……本来是打算上个周末弄出本章的,结果因为种种种种时间没安排开的关系,就给忽略了(其实是因为写搜资源的那个软件花了过多的时间……),所以现在赶紧来补上,免得太监了。
本章内容
本章内将会完成如下事情:
构造主窗体并将大致界面构造出来
将UI界面与当前订票的上下文关系关联起来
完成基本数据的准备和相关过程中的界面等待
4.1 构造大致界面
为了简便起见,这里我们约定使用比较简单的界面布局,暂时不添加复杂的功能选项界面。初步规划的界面如下图所示(这是个原型图,表以为我设计是多么的专业,其实我从来不用这玩意儿,这次拿出来耍耍只是为了装逼):
从原型图可以看出来,这是一个比较简单直接的订票界面,没有考虑到刷票等比较复杂的功能,也并没有设计什么多账户登录的功能。一是这样可以简化设计,比...
木魚
9年前 (2015-06-08) 11229℃ 10评论
11喜欢
3.1 本章前言
从本章开始,将会涉及到具体的开发过程。工欲善其事,必先利其器。话虽如此,但准备工具之前知己知彼还是比较重要的……
3.2 12306流程分析
这里我们从一个典型的用户订票流程来考虑并设计流程。
注意:这里同时已经设置好了Fiddler和过滤器以抓取所有请求,供后面使用。如果此时你还没有进行这样的操作,在这之后每一步可能都需要临时分析,会花费不少多余的时间,强烈建议你现在就抓取一个完整的流程记录。相关的内容请参考上一节。
首先用户进入了查票入口,选择日期和地点。这里以经典的北京–上海为例,时间选择的是7月20日,这里的信息不是关键的信息,可以根据你自己的需要来设置。
点击查询后,会跳转到查询页面,并显示查询结果。
这里假定我们要定G1次列车,点...
木魚
9年前 (2015-05-28) 6744℃ 7评论
9喜欢
2.1 前言
其实要做一个12306的软件版客户端,其核心奥义就是抓住重点扔掉花里胡哨的东东。抓住重点说的就是相关的API接口,花里胡哨的东西说的就是图片啊样式啊之类的东东,对于WEB来说它们是必不可少的,但是对于软件版来说这些则是累赘的东西。
由于一个WEB网站中占用体积大头的往往都是些静态的不会动的无生命物种,因此去掉这些东东既可以提高操作速度也可以减轻服务器的负载需求。虽然大型的网站都有CDN了,但是带宽也是要成本的是不是?虽然这成本和咱并没有什么关系。
既然要用软件去实现WEB接口并实现整个流程,那么在林林总总的HTTP请求中准确地找到相关的请求并正确的识别出请求内部的各个参数就很重要了。
2.2 请求跟踪
一般而言,识别请求是个经验活,而识别请求内容并判断响应内容则是个运气活了…...
木魚
9年前 (2015-05-22) 9932℃ 7评论
14喜欢
本项目是由木鱼发起的一个基于.NET4.5的12306订票客户端。项目使用C#语言,使用FSLib.Network项目作为网络层访问库,主要用于演示目的。
主要原因是因为很多同学希望能借由12306练手,以此打开通往网络编程的大门……选择12306不是没有原因的,因为其复杂多变,又有错综复杂的逻辑关系,又十分具有现实意义,嗯。
12306订票助手.NET的代码由于历史和功能的原因,其体系过于庞大,并不适合(且目前也不能)开放源码。因此重新单独启动这个简单的项目,希望能给予想学习网络编程的同学以帮助。
实现目标
本项目仅包含基本的12306功能实现:
登录
查询
提交订单
更详细进阶的功能将会在之后视情况是否加入。
技术概述
本项目出于演示&练习目的,所以将会使用较新的平台、工具以...
木魚
9年前 (2015-05-19) 8596℃ 4评论
20喜欢
1.4版变更
本版本主要变动如下。
创建支持创建为 JObject 对象;
新增自动检测BOM头的选项,默认开启;
增加 ExceptionStatus 属性;
ResponseFileContent 增加成功标记位
当使用代理服务器且需要验证时,提前设置验证信息以避免407响应;
修正针对单请求的UserAgent设置无效
其它细节调整
本版本暂无破坏性变更。
附议
本版本包含有部分空类,为预留之后开发使用,暂时可无视。
其它详细信息参见之前的相关文章。
...
木魚
9年前 (2015-05-08) 6186℃ 6评论
2喜欢
这个工具是受一个朋友所托写的,简单来说就是在多个信息网站上抓取列表内容,取到最新的内容后,符合要求的给予提示(比如桌面右下角弹窗)。
这是一个比较简单的工具,所以把源码放出来,也算是基于FSLIB.NETWORK的一个实例DEMO。
1.项目简单信息
开发工具:VisualStudio 2015 CTP6
开发语言:C#
目标Framework:4.0
项目类型:WinForm
运行平台:AnyCPU
2.部分技术细节信息
基本结构为主窗口+后台长轮询任务+基于接口的插件式开发
契约管理导入:MEF
后台长轮询任务:Task模式
HTML解析:HtmlAgilityPack+XPath
网络层:FSLib.Network
3.源码下载
4.交流讨论
...
木魚
9年前 (2015-04-27) 16097℃ 7评论
13喜欢
之前介绍过网络库的基本信息和基本使用情况。后面准备来写一点实例教程。
本来想着先写QQ空间到WordPress导出工具的(毕竟这个博客之前的文章也都是这么导过来的),可是突然觉得不是很吸引人,毕竟有这种需求的人太少了……上次有人发了一个代码片段抓美女图的,我不禁眼前一亮……嗯哼,还是得从本质出发啊,凡事抓住最根本的需求,方能引人入胜。所以我决定抓住 书生本~色 这个关键因素……写个抓美女图的工具吧。
1.起因
事情的起因如上所述,其实还有个引子,就是之前有同学在群里发了一个Code Snippet,在OSCHINA上,是一个C#的一段代码,用来抓妹子图的。当然很容易看明白,不过我还是好奇地去看了一下这个网站……矮油我去,这个地址的图片质量还都蛮高的嘞。好了来个爬虫吧。
捎带借妹子来作为自己...
木魚
9年前 (2015-01-30) 19312℃ 49评论
39喜欢
上一篇对FSLib.Network库进行了简单的介绍和演示。从本篇开始介绍相关的使用。
1.基本运行机制介绍
FSLib.Network.Http 命名空间下的类是本网络库中用于HTTP处理的相关类型集中存放的地方。由于类库是基于HttpWebRequest以及HttpWebResponse的,所以很多行为表现和逻辑和它们几乎保持一致。
在此基础之上,本类库进行了抽象和总结,并提炼出一整套流程和运行框架。以下分别介绍。
2.相关模型介绍
2.1 HttpClient
HttpClient是开始HTTP处理请求的工厂。它是用来维护、创建、跟踪HTTP请求的一个基本类。可以理解为它是一个容器,维护了所有的Cookies以及全局设置,然后通过它可以创建出不同的HTTP请求实例。
HttpClie...
木魚
9年前 (2015-01-19) 68678℃ 24评论
7喜欢
0.背景
开始在设计订票助手.NET的时候,我就在策划写一个比较易用的HTTP客户端库来完成底层的操作。由于.NET原生的HttpWebRequest比较复杂难用,而内置的WebClient先天不足。
.NET 4.5中新增了HttpClient,但可惜.NET4.0不支持XP,所以暂时只能放弃HttpClient了。在这种种背景之下,我花了很长的时间来打磨这个网络库。虽然起名叫Network,但是目前专注于HTTP库。
这个网络库在订票助手.NET中得到了广泛全面的使用,几乎所有对12306发出的请求都是由它发出的。在订票助手.NET中,最近四个月中,由它发出的请求过亿,其稳定性也是蛮有保证的嘛。
1.功能特点&运行需求
其实它是对HttpWebRequest/HttpWebRe...
木魚
9年前 (2015-01-18) 38504℃ 69评论
26喜欢