java调用百度的文字识别接口

这篇博客介绍了如何在Java项目中调用百度的文字识别接口,通过引入Maven的com.baidu.aip:java-sdk:4.2.0依赖,实现图像中的文字识别功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.*.controller;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.baidu.aip.ocr.AipOcr;

@Controller
public class OcrController {
	
	public net.sf.json.JSONObject OcrCheck()throws Exception {
		ResponseResult result = new ResponseResult();
		HashMap<String, String> options = new HashMap<String, String>();
		Map<String, Object> resultMap=new HashMap<String, Object>();
		net.sf.json.JSONObject jsonObj = new net.sf.json.JSONObject();
		try {
			//初始化客户端
			AipOcr client=authService.Ocrinit();
			
			//参数为图片外链
			String image ="c:\\Users\\admin\\Desktop\\图片
### Java 调用百度 OCR API 示例 为了在 Java调用百度文字识别 (OCR) API,可以按照如下方式构建请求并处理响应: #### 构建 HTTP 请求 首先,创建一个 URL 对象指向百度 OCR 的接口地址,并通过 `HttpURLConnection` 发送 POST 请求。需要设置必要的头部信息如 Content-Type 和 Authorization。 ```java URL url = new URL("https://aip.baidubce.com/rest/2.0/ocr/v1/idcard"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setDoOutput(true); connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); // 设置 access_token 参数 String accessToken = "your_access_token"; String param = "id_card_side=" + URLEncoder.encode("front", "UTF-8") + "&image=" + Base64.getEncoder().encodeToString(imageBytes); // imageBytes 是图片文件转换成字节数组后的数据 OutputStream os = connection.getOutputStream(); os.write((param + "&access_token=" + accessToken).getBytes()); ``` 此部分代码展示了如何准备发送给服务器的数据以及配置连接属性[^2]。 #### 处理返回的结果 当接收到服务器回应后,可以通过输入流读取 JSON 格式的字符串形式的结果,并解析其中的内容来获取所需的信息。 ```java if (connection.getResponseCode() == HttpURLConnection.HTTP_OK){ StringBuilder responseStrBuilder = new StringBuilder(); try(BufferedReader br = new BufferedReader( new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) { String line; while ((line = br.readLine()) != null) { responseStrBuilder.append(line.trim()); } } JSONObject jsonResponse = new JSONObject(responseStrBuilder.toString()); System.out.println(jsonResponse); } else { throw new RuntimeException("Failed : HTTP error code : " + connection.getResponseCode()); } ``` 上述代码片段说明了怎样接收来自百度 OCR 接口的反馈,并将其转化为易于操作的对象结构以便后续分析使用[^1]。 #### 获取 Header 字段 如果想要查看或调试 HTTP 响应头,则可利用以下语句提取所有的 header 键值对集合。 ```java Map<String, List<String>> headers = connection.getHeaderFields(); headers.forEach((key,value)->{ if(key!=null){ // key will be null for the list of http response codes. value.forEach(v->System.out.println(key+"="+v)); } }); ``` 这段程序演示了访问由 `getHeaderFields()` 方法所获得的地图对象的方法,从而允许开发者检查任何附加于回复中的元数据[^3]。 对于更加详细的指导和支持材料,建议查阅官方提供的 SDK 及其样例项目以加深理解[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值