1 public Map<String, Object> pictureRecognition(String recotype, MultipartFile imageFile) {
 2         String result = null;
 3         // 文件输入流
 4         FileInputStream fs = null;
 5         try {
 6             String configValue = cpConfigService.getValueByConfigKey("ocr_server_config", "{'uri':'http://cloud.exocr.com/recognize','username':'test','password':'test'}");
 7             Map<String, String> configMap = JsonUtils.json2Map2(configValue);
 8             String postUrl = configMap.get("uri"); // 服务地址
 9             Map<String, String> postParam = new HashMap<String, String>(10);
10             postParam.put("username", configMap.get("username")); // 用户名, 公有云测试可使用’test’
11             postParam.put("password", configMap.get("password")); // 密码,公有云测试可使用 ’test’
12             postParam.put("recotype", recotype); // BankCard
13             postParam.put("encoding", "utf-8"); // 返回结果的文字编码方式,取值包括:utf-8, 默认值 gb2312
14             postParam.put("head_portrait", "0"); // 是否返回头像(base64格式),只对身份证识别有效,取值范围:0,默认,不返回头像    1,则返回身份证的头像照片
15             postParam.put("crop_image", "0"); // 是否返回切边(base64格式),取值:0,    默认,不返回切边图    1,    返回切边图
16             postParam.put("b64", "1"); // 输入图片是否为base64格式,取值:0,    默认,二进制格式   1,    base64格式
17             // base64编码图像
18             String base64 = new String(Base64.encodeBase64(imageFile.getBytes()));
19             postParam.put("image", base64); // 待识别的图像,可以是二进制也可以是base64格式
20             result = HttpUtil.postUrlAsString(postUrl, postParam, null, "utf-8");
21             logger.info("OCR识别结果{}", result);
22         } catch (Exception e) {
23             logger.error("OCR识别异常:", e);
24             StringBuilder sb = new StringBuilder();
25             sb.append("{'Error':'99','Details':'OCR识别异常:");
26             sb.append(e.getMessage()).append("'}");
27             result = sb.toString();
28         } finally {
29             if (null != fs) {
30                 try {
31                     fs.close();
32                 } catch (IOException e) {
33                     logger.error("File input stream close exception:", e);
34                 }
35             }
36         }
37
38         try {
39             return JsonUtils.json2Map(result);
40         } catch (Exception e) {
41             logger.error("json to map exception:", e);
42         }
43
44         return null;
45     }

假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情请点击http://106.12.206.16:8080/qingruihappy/index.html

 1   public static String postUrlAsString(String url,
 2             Map<String, String> params, Map<String, String> reqHeader,
 3             String encode) throws Exception {
 4         // 开始时间
 5         long t1 = System.currentTimeMillis();
 6         // 获得HttpPost对象
 7         HttpPost httpPost = getHttpPost(url, params, encode);
 8         // 发送请求
 9         String result = executeHttpRequest(httpPost, reqHeader, encode);
10         // 结束时间
11         long t2 = System.currentTimeMillis();
12         // 调试信息
13         logger.debug("url:" + url);
14         logger.debug("params:" + params.toString());
15         logger.debug("reqHeader:" + reqHeader);
16         logger.debug("encode:" + encode);
17         logger.debug("result:" + result);
18         logger.debug("consume time:" + ((t2 - t1)));
19         // 返回结果
20         return result;
21     }  

 1   private static HttpPost getHttpPost(String url, Map<String, String> params,
 2             String encode) throws UnsupportedEncodingException {
 3         HttpPost httpPost = new HttpPost(url);
 4         if (params != null) {
 5             List<NameValuePair> form = new ArrayList<NameValuePair>();
 6             for (String name : params.keySet()) {
 7                 form.add(new BasicNameValuePair(name, params.get(name)));
 8             }
 9
10             UrlEncodedFormEntity entity = new UrlEncodedFormEntity(form,
11                     encode);
12             httpPost.setEntity(entity);
13         }
14
15         return httpPost;
16     }  

 1  /**
 2      * 执行HTTP请求
 3      *
 4      * @param request
 5      *            请求对象
 6      * @param reqHeader
 7      *            请求头信息
 8      * @return 内容字符串
 9      */
10     private static String executeHttpRequest(HttpUriRequest request,
11             Map<String, String> reqHeader, String encode) throws Exception {
12         HttpClient client = null;
13         String result = null;
14         try {
15             // 创建HttpClient对象
16             client = new DefaultHttpClient();
17             // 设置连接超时时间
18             client.getParams().setParameter(
19                     CoreConnectionPNames.CONNECTION_TIMEOUT, 60);
20             // 设置Socket超时时间
21             client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,
22                     36600);
23             // 设置请求头信息
24             if (reqHeader != null) {
25                 for (String name : reqHeader.keySet()) {
26                     request.addHeader(name, reqHeader.get(name));
27                 }
28             }
29             // 获得返回结果
30             HttpResponse response = client.execute(request);
31             // 如果成功
32             if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
33                 encode = StringUtils.isNotEmpty(encode) ? encode : DEFAULT_ENCODE;
34                 result = EntityUtils.toString(response.getEntity(), encode);
35             } else {
36                 StringBuffer errorMsg = new StringBuffer();
37                 errorMsg.append("httpStatus:");
38                 errorMsg.append(response.getStatusLine().getStatusCode());
39                 errorMsg.append(response.getStatusLine().getReasonPhrase());
40                 errorMsg.append(", Header: ");
41                 Header[] headers = response.getAllHeaders();
42                 for (Header header : headers) {
43                     errorMsg.append(header.getName());
44                     errorMsg.append(":");
45                     errorMsg.append(header.getValue());
46                 }
47                 logger.error("HttpResonse Error:" + errorMsg);
48                 result = "{'Error':'98','Details':'" + errorMsg.toString() + "'}";
49             }
50         } catch (Exception e) {
51             logger.error("http连接异常", e);
52             throw new Exception("http连接异常");
53         } finally {
54             try {
55                 client.getConnectionManager().shutdown();
56             } catch (Exception e) {
57                 logger.error("finally HttpClient shutdown error", e);
58             }
59         }
60         return result;
61     }  

httpclient案例一(调用识别接口)相关推荐

  1. java使用httpclient调用上传图片接口[示例]

    参考网站:nodejs使用http模块编写上传图片接口测试客户端 如果是java控制台app可以前往http://hc.apache.org/downloads.cgi下载新版httpclient库 ...

  2. 阿里云 OCR 图片文字识别接口使用案例(java)

    阿里云 OCR 图片文字识别接口使用案例(java) 阿里云官方接口文档 前期需要完成 购买阿里云服务 购买服务 可以购买测试服务.每个阿里云用户可以购买1次免费的500次接口请求进行测试 购买完成之 ...

  3. SpringBoot项目H5界面手机拍照调用腾讯云OCR卡证识别接口完整例子

    最近一个微信端项目的功能涉及一个手机拍照上传身份证识别身份证信息回显的功能,调用的接口是腾讯云OCR的卡证识别功能.看了腾讯云的api通俗易懂,本地写好了demo测试可用.H5界面手机拍照调用后台方法 ...

  4. java+httpclient实现Get、Post接口自动化案例

    java+httpclient实现Get.Post接口自动化案例 HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP ...

  5. java 证件识别_证件识别接口JAVA调用示例

    此篇java文章是基本聚合数据(http://www.juhe.cn)-----证件识别接口来演示,基本HTTP POST请求上传图片并接收JSON数据来处理,其他与上传图片相关的接口请求可参考此篇文 ...

  6. php调用搜狗ocr接口,搜狗ocr识别接口

    详细情况在代码中说明,如果不想自己使用TensorFlow,可使用下面接口 这是要识别的图片: image 最终识别的结果: This is a lot of 12 point text to tes ...

  7. php百度人脸识别做登陆,php调用百度人脸识别接口查询数据库人脸信息实现验证登录功能...

    博主在进行鼎食城毕业设计时,需要实现一个人脸识别登录功能,想到可以利用百度的人脸识别接口来完成,于是便去下载了百度的识别SDK,我用的是PHP,需要的的可以去下载其他版本,以下是识别效果: 用户在开始 ...

  8. html调用接口_搜狗ocr识别接口

    详细情况在代码中说明,如果不想自己使用TensorFlow,可使用下面接口 这是要识别的图片: 最终识别的结果: This is a lot of 12 point text to test the ...

  9. python调用百度接口实现ocr识别_Python调用百度OCR实现图片文字识别的示例代码

    百度AI提供了一天50000次的免费文字识别额度,可以愉快的免费使用!下面直接上方法: 首先在百度AI创建一个应用,按照下图创建即可,创建后会获得如下: 创建后会获得如下信息: APP_ID = '* ...

  10. HttpClient Get/Post方式调用Http接口

    HttpClient Get/Post方式调用Http接口 本节摘要:本节主要分别介绍如何用get方式.post方式向http接口发送数据. preparation 1. 项目环境如下: myecli ...

最新文章

  1. Linux进阶:DNS详解
  2. 研旭电子dsp配套程序_为什么自动调音DSP还火不了?
  3. springboot redis 断线重连_Redis高可用方案实现
  4. 我学会了用计算机作文,我学会了做饭作文300字(通用10篇)
  5. [转帖]Android Bitmap内存限制OOM,Out Of Memory
  6. jodconverter+ pdfbox 实现 office文档转pdf(openoffice实现),并提取pdf为缩略图、预览图
  7. WinAPI双人贪吃蛇
  8. Android WebView下载apk
  9. C语言自动计数功能,《Objective-C高级编程》温故知新之自动引用计数
  10. Discuz!首页去掉版块的最后发表、主题数、总帖数
  11. PS制作科幻特效的金色立体文字
  12. Background Suppression Network for Weakly-supervised Temporal Action Localization
  13. MogileFS部署流程
  14. 如何查看手机计算机历史记录,怎么查看电脑历史操作记录
  15. 物联网开源组件安全:Node-RED白盒审计
  16. 联通资费大幅下降意在iPhone用户
  17. Unity3D优化技巧系列七
  18. GitHub官方介绍(中文翻译)
  19. 获取Webshell的常用方法(一)
  20. Mtk平台录像失败的简单分析

热门文章

  1. oracle 用户被锁定解决方法
  2. 转:如何编程实现启用禁用网卡
  3. Java多线程学习笔记-线程的状态
  4. 题解 洛谷 P1580 【yyy loves Easter_Egg I】
  5. Hark的数据结构与算法练习之地精(侏儒)排序
  6. DuiLib(一)——窗口及消息
  7. 施密特:乔布斯影响力还没有完全释放
  8. Python基础灬函数补充(作用域,迭代器,生成器)
  9. 12-13 库存信息管理系统
  10. pyqt5 设置窗口按钮等可用与不可用