.. bulit documentation master file, created by sphinx-quickstart on Mon Oct 8 10:30:28 2018. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. PHP 示例 ================================= .. toctree:: :maxdepth: 2 请求并返回结果 ---------------- 请求接口地址 ++++++++++++ * http://www.bingtop.com/ocr/upload/ 示例代码 ++++++++++ .. code-block:: PHP /** * 获取图片base64数据 * @param ImageFile String 图片路径 * @return base64数据 */ function Base64EncodeImage($ImageFile) { if(file_exists($ImageFile) || is_file($ImageFile)){ $base64_image = ''; $image_data = fread(fopen($ImageFile, 'r'), filesize($ImageFile)); $base64_image = base64_encode($image_data); return $base64_image; } else { return ''; } } /** * 发送post请求 * @param string $url 请求地址 * @param array $post_data post键值对数据 * @return string */ function send_post($url, $post_data) { $postdata = http_build_query($post_data); $options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata, 'timeout' => 30 ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); return $result; } // 获取图片base64位数据 $picdata = Base64EncodeImage('getverifyimage.png'); // 请替换成目标图片路径 $post_data = array( 'username' => 'admin', 'password' => '123456', 'captchaType' => 1001, 'captchaData' => $picdata ); $result = send_post('http://www.bingtop.com/ocr/upload/', $post_data); // 返回值示例{"code":0, "message":"", "data":{"captchaId":"1001-158201918112812","recognition":"RESULT"}} echo $result 请求参数 +++++++++++++++++++++ .. code-block:: json { "username":"admin", "password":"123456", "captchaData":"/9j/4AAQ...示例省略若干位(图片文件内容的base64结果)...==", "captchaType":1001 } * username:注册用户名 * password:登录密码 * captchaData:图片文件内容,base64后的数据 * captchaType:识别类型(整形),,请查阅识别分类 响应数据 +++++++++++++++++++++ .. code-block:: json {"code":0, "message":"", "data":{"captchaId":"1001-158201918112812","recognition":"RESULT"}} * code:统一错误返回 * message:统一错误信息返回,正常为空 * data->captchaId:识别ID(非数字格式,预留40字节字符串长度) * data->recognition:识别结果 提示 +++++++++++++++++ * 简单图,英文字母、数字直接返回。全部大写化处理。 * 中文图,可能返回中文 或者返回 JSON标准的unicode \u4e2d\u6587 ,需要接入方使用标准JSON解析库自动处理。 * 坐标图,返回 | 和 , 分割的相对图片左上角像素坐标, 100,102|200,202 * 核心提示 * 获取结果接口为长连接阻塞式,不需要轮询获取结果。此接口为长连接阻塞模式。正常情况下,此接口会阻塞HTTP请求,直至有识别结果返回。所以接入方发起HTTP请求时, 应当 将此接口的超时时间设置为 60秒 。 * 为了防止网络问题导致长连接断开。接入方客户端应当在此接口没有返回任何 HTTP状态码 时(即网络故障),跳过本条,下次请求随机间隔 0.2 ~ 1.5 秒。 * 如遇任何错误,例如用户密码错误、点数不足,重新上传时,必须间隔3秒以上,防止无意义的重试。否则服务器会认为恶意攻击封禁IP。