软件工程中的图情结 我们通常都是对图形化的东西情有独钟,我们小时候的启蒙教育基本上也都是从图形化开始的,我们曾经看过的连环画、漫画、看图识字等等。因为图形能将一个抽象的东西具体化、形象化,图形化的表述能将一个用文字语言无法表达清楚或很难表达的观点、事物、科学概念等清晰的呈现出来。这就是为什么我们相比
MSDN也有错 谈起VB的权威来,自然是MSDN了,我们有什么问题,都会想去那里找到最终的答案。但是权威也只是权威,不是圣贤。 请看这个函数Instr:参数Start 可选。数值表达式,设置每个搜索的起始位置。如果省略该参数,则从第一个字符位置开始搜索。起始索
你距离家只差一个刷票脚本而已——12306刷票脚本升级版 马上就要回家了,票还没有。你是否用到了我去年发布的刷票脚本呢。传送门~我也在刷票,不过发现12306还是发生了一些变化,在使用过程中,发现会自动退出登录。所以对脚本做了一些改动。顺便加了一些新的功能。具体如下:防自动退出添加刷到票后发起桌面通知勾选某些类型的车选择发站站点选择到站站点选择乘车时间最重要的是前2个功能,第一个功能主要是解决因为12306可能对刷票做了特殊处理,自动刷票一段时间后,se
深度剖析ConcurrentHashMap源码 概述你可能会在一些技术类的书籍上看到下面这样一段关于HahsMap和HashTable的表述:HashMap是非线程安全的,HashTable是线程安全的。不知道大家有什么反应,我当时只是记住了,知道面试的时候能回答上来就行了…至于为什么是线程安全的,内部怎么实现的,却不怎么了解。今天我们将深入剖析一个比HashTable性能更优的线程安全的Map类,它就是
修改360抢票的刷新频率+突破8车次限制,太简单了 刚分享了一下12306网站刷票防挂js,居然没几个人看,估计都用其他刷票软件了,我之前一直用百度卫士自带的刷票工具,结果今天大家刷的太厉害了,12306不稳定,导致老是登录失败。于是不得不转向国民力荐的360刷票。打开刷票页面,居然让我必须安装360浏览器,这让人很无语。找了半天破解的方法,终于可以刷票了,结果发现360插件中的helper.dll无法在chrome中调用(chrome在45+后彻
新鲜出炉的12306防挂脚本,有需要的拿走 一年一度的“抢票运动会”又开始了,期间12306网站承受的压力越来越大,极不稳定。随着人们对互联网越来越熟悉,导致大量刷票软件的用户量猛增,大量的访问将12306快压垮了,以至于使用12306自家的刷票助手经常崩溃而无法继续刷票。作为一名“资深”的程序员,我无法忍受了,所以果断出手,写了一段js来防挂。 本来想简单的解决一下刷票自动挂的问题,后来想想写都写了,不如再增加几个有用的功能。
轻松把玩HttpClient之封装HttpClient工具类(九),添加多文件上传功能 在Git上有人给我提Issue,说怎么上传文件,其实我一开始就想上这个功能,不过这半年比较忙,所以一直耽搁了。这次正好没什么任务了,赶紧完成这个功能。毕竟作为一款工具类,有基本的请求和下载功能,就差上传了,有点说不过去。好了,天不早了,咱干点正事吧。 如果你只想了解怎么用HttpClient来上传文件,可以参考这篇文章:http://blog.csdn.net/fengyuzhengf
轻松把玩HttpClient之封装HttpClient工具类(八),优化启用Http连接池策略 写了HttpClient工具类后,有人一直在问我怎么启用http连接池,其实我没考虑过这个问题难过。不过闲暇的时候,突然间想起了这个问题,就想把这个问题搞一搞。
轻松把玩HttpClient之封装HttpClient工具类(七),新增验证码识别功能 这个HttpClientUtil工具类分享在GitHub上已经半年多的时间了,并且得到了不小的关注,有25颗star,被fork了38次。有了大家的鼓励,工具类一直也在完善中。最近比较忙,两个多月前的修改在今天刚修改测试完成,今天再次分享给大家。 验证码识别这项技术并不是本工具类的功能,而是通过一个开源的api来识别验证码的。这里做了一个简单的封装,主要是用来解决登陆时的验证码的问题。
轻松把玩HttpClient之封装HttpClient工具类(六),封装输入参数,简化工具类 在写这个工具类的时候发现传入的参数太多,以至于方法泛滥,只一个send方法就有30多个,所以对工具类进行了优化,把输入参数封装在一个对象里,这样以后再扩展输入参数,直接修改这个类就ok了。 不多说了,先上代码:/** * 请求配置类 * * @author arron * @date 2016年2月2日 下午3:14:32 * @version 1.0 */pub
轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求 最近更新了一下HttpClientUtil工具类代码,主要是添加了一个参数HttpContext,这个是用来干嘛的呢?其实是用来保存和传递Cookie所需要的。因为我们有很多时候都需要登录,然后才能请求一些想要的数据。而在这以前使用HttpClientUtil工具类,还不能办到。现在更新了以后,终于可以了。 先说一下思路:本次的demo,就是获取csdn中的c币,要想获取c币,必须先登
为百度阅读web端添加工具栏——百阅栏的诞生 在一个偶然的机会,看到了百度阅读这款产品,找了几本免费的书,打开看了看,总体还不错的样子,但是由于公司电脑的屏幕比较宽,而百度阅读设置的阅读宽度是840px的固定宽度,所以看起来就比较费劲了。宽度不提供调整也就算了,连字体、字体颜色、背景色等都没有提供调整的功能,随便打开一个小说网站基本上都会提供的吧。还有可气的是不让跨页复制,一滚动鼠标,复制的东西就取消了。 看到这么多让人无法忍受的
轻松把玩HttpAsyncClient之模拟post请求示例 如果看到过我前些天写过的《轻松把玩HttpClient之模拟post请求示例》这篇文章,你再看本文就是小菜一碟了,如果你顺便懂一些NIO,基本上是毫无压力了。因为HttpAsyncClient相对于HttpClient,就多了一个NIO,这也是为什么支持异步的原因。不过我有一个疑问,虽说NIO是同步非阻塞IO,但是HttpAsyncClient提供了回调的机制,这点儿跟netty很像,所以可以模拟
轻松把玩HttpClient之封装HttpClient工具类(四),单线程调用及多线程批量调用测试 本文主要来分享一下该工具类的测试结果。工具类的整体源码不再单独分享,源码基本上都已经在文章中了。开始我们的测试。单线程调用测试: public static void testOne() throws HttpProcessException{ System.out.println("--------简单方式调用(默认post)--------"); String url = "ht
轻松把玩HttpClient之封装HttpClient工具类(三),插件式配置Header 上篇文章介绍了插件式配置HttpClient,本文将介绍插件式配置Header。为什么要配置header在前面已经提到了,还里再简单说一下,要使用HttpClient模拟请求,去访问各种接口或者网站资源,都有可能有各种限制,比如说java客户端模拟访问csdn博客,就必须设置User-Agent,否则就报错了。还有各种其他情况,必须的设置一些特定的Header,才能请求成功,或者才能不出问题。好了
轻松把玩HttpClient之封装HttpClient工具类(二),插件式配置HttpClient对象 上一篇文章中,简单分享一下封装HttpClient工具类的思路及部分代码,本文将分享如何实现插件式配置HttpClient对象。如果你看过我前面的几篇关于HttpClient的文章或者官网示例,应该都知道HttpClient对象在创建时,都可以设置各种参数,但是却没有简单的进行封装,比如对我来说比较重要的3个:代理、ssl(包含绕过证书验证和自定义证书验证)、超时。还需要自己写。所以这里我就简单封
轻松把玩HttpClient之封装HttpClient工具类(一)(现有网上分享中的最强大的工具类) 搜了一下网络上别人封装的HttpClient,大部分特别简单,有一些看起来比较高级,但是用起来都不怎么好用。调用关系不清楚,结构有点混乱。所以也就萌生了自己封装HttpClient工具类的想法。要做就做最好的,本工具类支持插件式配置Header、插件式配置httpclient对象,这样就可以方便地自定义header信息、配置ssl、配置proxy等。是不是觉得说的有点悬乎了,那就先看看调用吧: