调用百度AI接口实现网络图片中的文字识别
之前也做过一些api调用的demo,一直是看API文档,向目标url发送请求,看看传哪些参数,接受哪些参数。
API平台:https://ai.baidu.com
这次使用HTTP-SDK文档。那么两者的区别是什么呢?
API 文档告诉你服务的“功能”是什么,你需要发送什么,你会得到什么。这是最根本的。
HTTP-SDK 是官方为你提供的一个“工具包”或“脚手架”。 它的目的是让你基于 API 文档进行开发时,更加方便、快速、稳定和安全。

首先引入依赖
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>4.16.12</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
具体代码
@RestController
@RequestMapping("/files")
public class FileUploadController {
// 设置APPID/AK/SK
private static final String APP_ID = "";
private static final String API_KEY = "";
private static final String SECRET_KEY = "";
// 初始化一个AipOcr单例
private static final AipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);
/**
* 图片文字识别接口
* @param file 上传的图片文件
* @return 识别结果
*/
@PostMapping("/ocr")
public ResponseEntity<Map<String, Object>> recognizeText(@RequestParam("file") MultipartFile file) {
Map<String, Object> result = new HashMap<>();
if (file.isEmpty()) {
result.put("code", 400);
result.put("msg", "文件不能为空");
return ResponseEntity.badRequest().body(result);
}
try {
// 使用空的HashMap作为options参数
HashMap<String, String> options = new HashMap<>();
// 调用百度OCR接口识别图片中的文字
byte[] fileBytes = file.getBytes();
JSONObject res = client.webImage(fileBytes, options);
result.put("code", 200);
result.put("msg", "识别成功");
result.put("data", res.toMap());
return ResponseEntity.ok(result);
} catch (Exception e) {
result.put("code", 500);
result.put("msg", "识别失败: " + e.getMessage());
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(result);
}
}
}
结果展示

浙公网安备 33010602011771号