JAVASCRIPT

请求并返回结果

示例代码

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
</head>
<body>

<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">

// 读取图片文件的base64数据,并回调
function ReadFile(file, callback) {
    // 实例化一个FileReader实例
    var reader = new FileReader();
    reader.onload = function() {
        file_data = this.result;
        file_data = file_data.split(",");
        file_data = file_data.pop();

        // 执行回调函数,传递图片base64数据
        callback(file_data);
    };
    reader.readAsDataURL(file);
}

// 入口函数
function SelectFile(){
    var postUrl = "http://www.bingtop.com/ocr/upload/";
    var param = {
        username   : 'admin',
        password   : '123456',
        captchaType: 1000
    };
    var form = document.forms["fileform"];
    if (form["file"].files.length > 0) {
        var file = form["file"].files[0];
        ReadFile(file, function(img_data){
            param["captchaData"] = img_data;
            // 发起post请求,获取验证结果
            // result格式示例 {"code":0, "message":"", "data":{"captchaId":"1000-158201918112812","recognition":"RESULT"}}
            $.post(postUrl, param, function(result){
                code_id = result['data']['captchaId'];
                code = result['data']['recognition'];
                console.log('当前识别的验证码为:' + code)
            });
        });
    }
}

</script>
    <style type="text/css">
        label{display: block;margin-bottom: 10px}
    </style>
    <form style="border: 1px solid #ccc; padding: 20px; border-radius: 10px; width: 500px;margin:auto" name= "fileform" id="fileform"  method="post" enctype="multipart/form-data"  action="javascript:SelectFile();">
        <label>账号:<input type="text" name="username"></label>
        <label>密码:<input type="password" name="password"></label>
        <label>类型:<input type="text" name="captchaType" value="1000" > 图文类型</label>
        <label><input type='file' name="file" /></label>
        <input type="submit" value="识别"  />
    </form>
</body>
</html>

请求参数

{
    "username":"admin",
    "password":"123456",
    "captchaData":"/9j/4AAQ...示例省略若干位(图片文件内容的base64结果)...==",
    "captchaType":1000
}
  • username:注册用户名
  • password:登录密码
  • captchaData:图片文件内容,base64后的数据
  • captchaType:识别类型(整形),,请查阅识别分类

响应数据

{"code":0, "message":"", "data":{"captchaId":"1000-158201918112812","recognition":"RESULT"}}
  • code:统一错误返回
  • message:统一错误信息返回,正常为空
  • data->captchaId:识别ID(非数字格式,预留40字节字符串长度)
  • data->recognition:识别结果

提示

  • 简单图,英文字母、数字直接返回。全部大写化处理。
  • 中文图,可能返回中文 或者返回 JSON标准的unicode u4e2du6587 ,需要接入方使用标准JSON解析库自动处理。
  • 坐标图,返回 | 和 , 分割的相对图片左上角像素坐标, 100,102|200,202
  • 核心提示
    • 获取结果接口为长连接阻塞式,不需要轮询获取结果。此接口为长连接阻塞模式。正常情况下,此接口会阻塞HTTP请求,直至有识别结果返回。所以接入方发起HTTP请求时, 应当 将此接口的超时时间设置为 60秒 。
    • 为了防止网络问题导致长连接断开。接入方客户端应当在此接口没有返回任何 HTTP状态码 时(即网络故障),跳过本条,下次请求随机间隔 0.2 ~ 1.5 秒。
    • 如遇任何错误,例如用户密码错误、点数不足,重新上传时,必须间隔3秒以上,防止无意义的重试。否则服务器会认为恶意攻击封禁IP。