一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

java----百度識(shí)別身份證識(shí)別api使用方法

 印度阿三17 2019-05-22

前言
百度識(shí)別api是一個(gè)非常實(shí)用的工具,他可以非常有效的進(jìn)行身份信息讀取,我們可以通過(guò)他來(lái)獲取到身份證上的所有信息,百度識(shí)別不管只具有身份證識(shí)別,還有很多證件的識(shí)別api。
接下來(lái)我們說(shuō)具體實(shí)現(xiàn)流程:首先要引用SDK包,然后獲取百度地圖提供的accessToken碼,然后存入圖片路徑進(jìn)行數(shù)據(jù)返回。
1.引入百度地圖SDK包
(1)在http://ai.baidu.com/sdk下載SDK
(2)將下載的aip-java-sdk-version.zip解壓后,復(fù)制到工程文件夾中。
(3)在Eclipse右鍵“工程 -> Properties -> Java Build Path -> Add JARs”。
(4)添加SDK工具包aip-java-sdk-version.jar和第三方依賴(lài)工具包json-20160810.jar log4j-1.2.17.jar。
2.獲取accessToken
package com.telematics.wx.util;

import org.json.JSONObject;

import .BufferedReader;
import .InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;

/**

  • 獲取token類(lèi)
    /
    public class AuthService {
    public static void main(String[] args) {
    String str= getAuth();
    System.out.println(str);
    }
    /
    *

    • 獲取權(quán)限token
    • @return 返回示例:
    • {
    • “access_token”: “24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567”,
    • “expires_in”: 2592000
    • }
      */
      public static String getAuth() {
      // 官網(wǎng)獲取的 API Key 更新為你注冊(cè)的
      String clientId = ";
      // 官網(wǎng)獲取的 Secret Key 更新為你注冊(cè)的
      String clientSecret = “”;
      return getAuth(clientId, clientSecret);
      }

    /**

    • 獲取API訪(fǎng)問(wèn)token
    • 該token有一定的有效期,需要自行管理,當(dāng)失效時(shí)需重新獲取.
    • @param ak - 百度云官網(wǎng)獲取的 API Key
    • @param sk - 百度云官網(wǎng)獲取的 Securet Key
    • @return assess_token 示例:
    • “24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567”
      /
      public static String getAuth(String ak, String sk) {
      // 獲取token地址
      String authHost = "https://aip./oauth/2.0/token?";
      String getAccessTokenUrl = authHost
      // 1. grant_type為固定參數(shù)
      “grant_type=client_credentials”
      // 2. 官網(wǎng)獲取的 API Key
      “&client_id=” ak
      // 3. 官網(wǎng)獲取的 Secret Key
      “&client_secret=” sk;
      try {
      URL realUrl = new URL(getAccessTokenUrl);
      // 打開(kāi)和URL之間的連接
      HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
      connection.setRequestMethod(“GET”);
      connection.connect();
      // 獲取所有響應(yīng)頭字段
      Map<String, List> map = connection.getHeaderFields();
      // 遍歷所有的響應(yīng)頭字段
      for (String key : map.keySet()) {
      System.err.println(key “—>” map.get(key));
      }
      // 定義 BufferedReader輸入流來(lái)讀取URL的響應(yīng)
      BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
      String result = “”;
      String line;
      while ((line = in.readLine()) != null) {
      result = line;
      }
      /
      *
      * 返回結(jié)果示例
      */
      System.err.println(“result:” result);
      JSONObject jsonObject = new JSONObject(result);
      String access_token = jsonObject.getString(“access_token”);
      return access_token;
      } catch (Exception e) {
      System.err.printf(“獲取token失??!”);
      e.printStackTrace(System.err);
      }
      return null;
      }

}
3.進(jìn)行識(shí)別
@RequestMapping(“test”)
@ResponseBody
public String test(HttpServletRequest request,HttpServletResponse response, ModelMap model,HttpSession session){
System.out.println(“進(jìn)入身份識(shí)別”);
// 身份證識(shí)別url
String idcardIdentificate = “https://aip./rest/2.0/ocr/v1/idcard”;
// 本地圖片路徑
String path=session.getServletContext().getRealPath("/upload");
System.out.println(“根目錄路徑” path);
String filePath = path "\" “shenfenzheng.jpg”;
System.out.println(“圖片路徑” filePath);
try {
byte[] imgData = FileUtil.readFileByBytes(filePath);//使用工具類(lèi)進(jìn)行轉(zhuǎn)碼
String imgStr = Base64Util.encode(imgData);//百度地圖的所有圖片均需要base64編碼、去掉編碼頭后再進(jìn)行urlencode。//import com.baidu.aip.util.Base64Util;
// 識(shí)別身份證正面id_card_side=front;識(shí)別身份證背面id_card_side=back;
String params = “id_card_side=front&” URLEncoder.encode(“image”, “UTF-8”) “=”
URLEncoder.encode(imgStr, “UTF-8”);
String token=AuthService.getAuth();//調(diào)用上面的accessToken碼代碼
String accessToken = token;
String result = HttpUtil.post(idcardIdentificate, accessToken, params);
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
return “0”;
}
4.工具類(lèi)
package com.goocom.util;

import .*;

/**

  • 文件讀取工具類(lèi)
    */
    public class FileUtil {

    /**

    • 讀取文件內(nèi)容,作為字符串返回
      */
      public static String readFileAsString(String filePath) throws IOException {
      File file = new File(filePath);
      if (!file.exists()) {
      throw new FileNotFoundException(filePath);
      }

      if (file.length() > 1024 * 1024 * 1024) {
      throw new IOException(“File is too large”);
      }

      StringBuilder sb = new StringBuilder((int) (file.length()));
      // 創(chuàng)建字節(jié)輸入流
      FileInputStream fis = new FileInputStream(filePath);
      // 創(chuàng)建一個(gè)長(zhǎng)度為10240的Buffer
      byte[] bbuf = new byte[10240];
      // 用于保存實(shí)際讀取的字節(jié)數(shù)
      int hasRead = 0;
      while ( (hasRead = fis.read(bbuf)) > 0 ) {
      sb.append(new String(bbuf, 0, hasRead));
      }
      fis.close();
      return sb.toString();
      }

    /**

    • 根據(jù)文件路徑讀取byte[] 數(shù)組
      */
      public static byte[] readFileByBytes(String filePath) throws IOException {
      File file = new File(filePath);
      if (!file.exists()) {
      throw new FileNotFoundException(filePath);
      } else {
      ByteArrayOutputStream bos = new ByteArrayOutputStream((int) file.length());
      BufferedInputStream in = null;

       try {
           in = new BufferedInputStream(new FileInputStream(file));
           short bufSize = 1024;
           byte[] buffer = new byte[bufSize];
           int len1;
           while (-1 != (len1 = in.read(buffer, 0, bufSize))) {
               bos.write(buffer, 0, len1);
           }
      
           byte[] var7 = bos.toByteArray();
           return var7;
       } finally {
           try {
               if (in != null) {
                   in.close();
               }
           } catch (IOException var14) {
               var14.printStackTrace();
           }
      
           bos.close();
       }
      

      }
      }
      }
      到此結(jié)束,第一次寫(xiě)博客有些不太熟練希望大家諒解,有什么要求和評(píng)論希望大家一起學(xué)習(xí)。

來(lái)源:http://www./content-1-202201.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多

    一区二区三区日韩经典| 人妻人妻人人妻人人澡| 精品人妻一区二区三区免费| 日本加勒比在线播放一区| 日本熟妇熟女久久综合| 国产男女激情在线视频| 国产一区二区三区av在线| av中文字幕一区二区三区在线 | 国产精品欧美在线观看| 内用黄老外示儒术出处| 国产成人精品一区二三区在线观看| 成人精品网一区二区三区| 国产精品视频第一第二区| 国产麻豆成人精品区在线观看| 日韩午夜老司机免费视频| 国产高清一区二区不卡| 老司机精品视频在线免费看| 亚洲国产性生活高潮免费视频| 国产精品夜色一区二区三区不卡| 欧美一区二区三区不卡高清视| 精品国产成人av一区二区三区| 国产成人亚洲精品青草天美 | 精品精品国产自在久久高清| 午夜日韩在线观看视频| 男人把女人操得嗷嗷叫| 国产无摭挡又爽又色又刺激| 久久精品国产99精品亚洲| 夫妻激情视频一区二区三区| 国产伦精品一区二区三区高清版| 国产熟女一区二区精品视频| 丰满人妻熟妇乱又乱精品古代| 在线免费观看一二区视频| 亚洲国产黄色精品在线观看| 99久免费精品视频在线观| 欧美黑人巨大一区二区三区| 99久热只有精品视频最新| 亚洲欧美日产综合在线网| 国产成人亚洲综合色就色| 国产无摭挡又爽又色又刺激| 99久热只有精品视频免费看| 麻豆精品在线一区二区三区|