此篇java文章是基于聚合数据(http://www.juhe.cn)-----证件辨认接口来演示,根本HTTP POST申请上传图片并接管JSON数据来解决,其余与上传图片相干的接口申请可参考此篇文章。
应用前你须要:
①:通过 http://www.juhe.cn/docs/api/id/153 申请一个名片辨认的appkey
1.反对的证件类型清单
此接口可通过GET申请失去后果,java网络申请有HttpClient相干工具包及HttpURLConnection相干的包等,这里用的是HttpClient,须要先导包,如果用maven话会更不便间接把:
org.apache.httpcomponentshttpmime4.3.6org.apache.httpcomponentshttpclient4.4.1
复制到配置文件 pom.xml
申请代码如下:
public static String get() throws IOException {// 创立HttpClient对象CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String result = null;try {HttpGet httpGet = new HttpGet("http://api2.juheapi.com/cardrecon/supportlist?key="+ appKey);// 执行网络申请response = httpClient.execute(httpGet);// 获取申请实体HttpEntity resEntity = response.getEntity();if (resEntity != null) {// ConverStreamToString是上面写的一个办法是把网络申请的字节流转换为utf8的字符串result = ConvertStreamToString(resEntity.getContent(), "UTF-8");}EntityUtils.consume(resEntity);} catch (Exception e) {} finally {// 敞开申请response.close();httpClient.close();}// 失去的是JSON类型的数据须要第三方解析JSON的jar包来解析return result;}
2.证件图片辨认
// 此办法是POST申请上传的参数中蕴含本地图片信息File类型public static String post(String type, File file) throws Exception {CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String result = null;// HttpClient申请的相干设置,能够不必配置,用默认的参数,这里设置连贯和超时时长(毫秒)RequestConfig config = RequestConfig.custom().setConnectTimeout(30000).setSocketTimeout(30000).build();try {HttpPost httppost = new HttpPost("http://api2.juheapi.com/cardrecon/upload");// FileBody封装File类型的参数FileBody bin = new FileBody(file);// StringBody封装String类型的参数StringBody keyBody = new StringBody(key, ContentType.TEXT_PLAIN);StringBody typeBody = new StringBody(type, ContentType.TEXT_PLAIN);// addPart将参数传入,并指定参数名称HttpEntity reqEntity = MultipartEntityBuilder.create().addPart("pic", bin).addPart("key", keyBody).addPart("cardType", typeBody).build();httppost.setEntity(reqEntity);httppost.setConfig(config);// 执行网络申请并返回后果response = httpClient.execute(httppost);HttpEntity resEntity = response.getEntity();if (resEntity != null) {result = ConvertStreamToString(resEntity.getContent(), "UTF-8");}EntityUtils.consume(resEntity);} finally {response.close();httpClient.close();}// 失去的是JSON类型的数据须要第三方解析JSON的jar包来解析return result;}// 此办法是把传进的字节流转化为相应的字符串并返回,此办法个别在网络申请中用到public static String ConvertStreamToString(InputStream is, String charset)throws Exception {StringBuilder sb = new StringBuilder();try (InputStreamReader inputStreamReader = new InputStreamReader(is,charset)) {try (BufferedReader reader = new BufferedReader(inputStreamReader)) {String line = null;while ((line = reader.readLine()) != null) {sb.append(line).append("\r\n");}}}return sb.toString();}
原文链接:https://blog.csdn.net/weixin_...