轻松把玩HttpClient之封装HttpClient工具类(七),新增验证码识别功能

       这个HttpClientUtil工具类分享在GitHub上已经半年多的时间了,并且得到了不小的关注,有25颗star,被fork了38次。有了大家的鼓励,工具类一直也在完善中。最近比较忙,两个多月前的修改在今天刚修改测试完成,今天再次分享给大家。


       验证码识别这项技术并不是本工具类的功能,而是通过一个开源的api来识别验证码的。这里做了一个简单的封装,主要是用来解决登陆时的验证码的问题。在线验证码识别官网:http://lab.ocrking.com/,github地址:https://github.com/AvensLab/OcrKing/,是一个功能非常强大的工具。


       好了,言归正传,本次封装的工具重要代码如下:

/** 
 * 识别验证码
 * 
 * @author arron
 * @date 2016年3月24日 上午9:44:35 
 * @version 1.0 
 */
public class OCR {
	
	/**
	 * 接口说明:
	 * https://github.com/AvensLab/OcrKing/blob/master/线上识别http接口说明.txt
	 */
	private static final String apiUrl = "http://lab.ocrking.com/ok.html";
	private static final String apiKey = PropertiesUtil.getProperty("OCR.key");
	private static final String boundary = "----------------------------OcrKing_Client_Aven_s_Lab";
	private static final String end="\r\n--" + boundary + "--\r\n";
	private static final Header[] headers = HttpHeader.custom()										 	.referer("http://lab.ocrking.com/?javaclient0.1)")
																					.build();
	private static final Map<String, Object> map = getParaMap();
	private static HttpClient client  =null; //=HCB.custom().proxy("127.0.0.1", 8888).build();

	public static void debug(){
		client =HCB.custom().proxy("127.0.0.1", 8888).build();
	}
	public static void exitDebug(){
		client =null;
	}
	
	//获取固定参数
	private static Map<String, Object> getParaMap(){
		//加载所有参数
		Map<String , Object> map = new HashMap<String, Object>();
		map.put("service", "OcrKingForCaptcha");
		map.put("language", "eng");
		map.put("charset", "7");//7-数字大写小写,5-数字大写字母
		map.put("type", "http://www.unknown.com");
		map.put("apiKey", apiKey);
		return map;
	}
	
	/**
	 * 识别本地校验码(英文:字母+大小写)
	 * 
	 * @param imgFilePath	验证码地址
	 * @return
	 */
	public static String ocrCode(String filePath){
		return ocrCode(filePath, 0);
	}
	/**
	 * 识别本地校验码(英文:字母+大小写)
	 * 
	 * @param imgFilePath	验证码地址
	 * @param limitCodeLen	验证码长度(如果结果与设定长度不一致,则返回获取失败的提示)
	 * @return
	 */
	@SuppressWarnings("resource")
	pub
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值