基本信息
源码名称:生成验证码和二维码
源码大小:0.59M
文件格式:.zip
开发语言:Java
更新时间:2021-01-18
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 1 元 
   源码介绍

验证码可以设置长度、是否中文,二维码可以设置生成二维码的内容

@Override
public void run() {
    OutputStream outputStream = null;
    OutputStreamWriter outputStreamWriter = null;
    InputStreamReader inputStreamReader = null;
    try {
        //获得输出流
        outputStream = socket.getOutputStream();
        outputStreamWriter = new OutputStreamWriter(outputStream);
        //获得输入流
        inputStreamReader = new InputStreamReader(socket.getInputStream());
        StringBuffer stringBuffer = new StringBuffer();
        char[] chars = new char[2048];
        int len = inputStreamReader.read(chars);
        //获取请求信息
        stringBuffer.append(new String(chars,0,len));
        //解析请求资源
        String path = stringBuffer.substring(stringBuffer.indexOf("/")   1, stringBuffer.indexOf(" HTTP/1.1")) ;
        Map map = null ;
        //有参数就解析参数
        if (path.indexOf("?")!=-1){
            map = new HashMap();
            String param = path.substring(path.indexOf("?")   1);
            path = stringBuffer.substring(stringBuffer.indexOf("/")   1, stringBuffer.indexOf("?"));
            String[] split = param.split("&");

            for (String s : split) {
                String[] split1 = s.split("=");
                map.put(split1[0], URLDecoder.decode(split1[1],"utf-8"));
            }
        }
        //判断请求的资源
        if ("codeImage".equals(path)){
            if (map != null){//有参返回的二维码
                outputStream.write(Result.getCodeImage((String) map.get("content")));
            }else//默认返回二维码
                outputStream.write(Result.getCodeImage("http://hxb19990523.top:8080/HTML/index.html"));
        }else if ("vCode".equals(path)){
            if (map != null){//有参返回
                //判断验证码类型
                boolean flag = "cn".equals(map.get("type"))?true:false;
                //没有设置验证码长度默认为4
                Integer length = map.get("len")!=null?  Integer.parseInt(map.get("len").toString()) : 4;
                if (flag) {
                    //汉字验证码
                    outputStream.write(ValidateCodeFactory.getChineseVCode(FontsFactory.getChinese(length)));
        }
    }
}