前言:由于本人技术过于菜,在实现这个功能的时候,遇到很多问题,其实主要原因还是因为看不太习惯API接口,所以我建议大家多看看API文档,经常看以后遇到需要看API文档的时候也就会了;
软硬件环境:百度云文字识别接口,MyEclipse;
步骤:1.注册或者登录百度云官网,进入控制台选择文字识别
步骤 :2.创建应用,填入相关信息后点击创建
步骤:3.创建成功后进入管理应用界面,可以看到我们刚刚创建的应用的AppID,APIKey,SercretKey等信息(实现OCR功能时,需要这几个参数)
步骤:4.编写代码
主要有以下几个类
Main.java,主函数; TokenUtil.java 获取token的工具类 ;
FileUtil.java 获取图片地址并转化为Byte的工具类 HttpUtil.java 发送http的工具类;
Base64Util.java 把图片转为base64格式的工具类
Main.java:
package com.edu.fjnu.demo; import java.net.URLEncoder; /** * @author XXX * 1.获取token * 2.获取字符串文件图片 * 3.图片转Base64 * 4.发送http请求 */ public class Main { public static void main(String[] args) { // 通用识别url String otherHost = "https://aip.baidubce.com/rest/2.0/ocr/v1/general"; // 本地图片路径 String filePath = "D:\\ImageTest\\test2.jpg"; String token = TokenUtil.getToken(); try { byte[] imgData = FileUtil.readFileByBytes(filePath); String imgStr = Base64Util.encode(imgData); String params = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(imgStr, "UTF-8"); /** * 线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。 */ String accessToken = token; String result = HttpUtil.post(otherHost, accessToken, params); System.out.println(result); } catch (Exception e) { e.printStackTrace(); } } }
TokenUtil.java:
package com.edu.fjnu.demo; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import net.sf.json.JSONObject; /** *