官方地址:

API Explorer - 云 API - 控制台https://console.cloud.tencent.com/api/explorer?Product=ocr&Version=2018-11-19&Action=DriverLicenseOCR前置操作与下面博客前置操作一致:实名认证 —— 腾讯云身份证认证接口-CSDN博客

首先编写Controller:

@Operation(summary = "驾驶证识别")
@PostMapping("/driverLicenseOcr")
public Result<DriverLicenseOcrVo> driverLicenseOcr(@RequestPart("file") MultipartFile file) {return Result.ok(ocrService.driverLicenseOcr(file));
}

随后编写Service:

步骤解析:与实名认证 —— 腾讯云身份证认证接口-CSDN博客几乎一致

    ////驾驶证识别@Overridepublic DriverLicenseOcrVo driverLicenseOcr(MultipartFile file) {try{//图片转换base64格式字符串byte[] base64 = Base64.encodeBase64(file.getBytes());String fileBase64 = new String(base64);// 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密Credential cred = new Credential(tencentCloudProperties.getSecretId(),tencentCloudProperties.getSecretKey());// 实例化一个http选项,可选的,没有特殊需求可以跳过HttpProfile httpProfile = new HttpProfile();httpProfile.setEndpoint("ocr.tencentcloudapi.com");// 实例化一个client选项,可选的,没有特殊需求可以跳过ClientProfile clientProfile = new ClientProfile();clientProfile.setHttpProfile(httpProfile);// 实例化要请求产品的client对象,clientProfile是可选的OcrClient client = new OcrClient(cred, tencentCloudProperties.getRegion(),clientProfile);// 实例化一个请求对象,每个接口都会对应一个request对象DriverLicenseOCRRequest req = new DriverLicenseOCRRequest();req.setImageBase64(fileBase64);// 返回的resp是一个DriverLicenseOCRResponse的实例,与请求对象对应DriverLicenseOCRResponse resp = client.DriverLicenseOCR(req);//封装到vo对象里面DriverLicenseOcrVo driverLicenseOcrVo = new DriverLicenseOcrVo();if (StringUtils.hasText(resp.getName())) {//驾驶证正面//驾驶证名称要与身份证名称一致driverLicenseOcrVo.setName(resp.getName());driverLicenseOcrVo.setDriverLicenseClazz(resp.getClass_());driverLicenseOcrVo.setDriverLicenseNo(resp.getCardCode());driverLicenseOcrVo.setDriverLicenseIssueDate(DateTimeFormat.forPattern("yyyy-MM-dd").parseDateTime(resp.getDateOfFirstIssue()).toDate());driverLicenseOcrVo.setDriverLicenseExpire(DateTimeFormat.forPattern("yyyy-MM-dd").parseDateTime(resp.getEndDate()).toDate());//上传驾驶证反面图片到腾讯云cosCosUploadVo cosUploadVo = cosService.upload(file, "driverLicense");driverLicenseOcrVo.setDriverLicenseFrontUrl(cosUploadVo.getUrl());driverLicenseOcrVo.setDriverLicenseFrontShowUrl(cosUploadVo.getShowUrl());} else {//驾驶证反面//上传驾驶证反面图片到腾讯云cosCosUploadVo cosUploadVo =  cosService.upload(file, "driverLicense");driverLicenseOcrVo.setDriverLicenseBackUrl(cosUploadVo.getUrl());driverLicenseOcrVo.setDriverLicenseBackShowUrl(cosUploadVo.getShowUrl());}return driverLicenseOcrVo;} catch (Exception e) {e.printStackTrace();throw new GuiguException(ResultCodeEnum.DATA_ERROR);}}

随后编写feign:

/*** 驾驶证识别* @param file* @return*/
@PostMapping(value = "/ocr/driverLicenseOcr", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Result<DriverLicenseOcrVo> driverLicenseOcr(@RequestPart("file") MultipartFile file);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/92443.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/92443.shtml
英文地址,请注明出处:http://en.pswp.cn/web/92443.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

科技云报到:Agent应用爆发,谁成为向上托举的力量?

科技云报道原创。经过两年多的发展后&#xff0c;AI开始加速进入Agent时代。当AI从“被动响应”迈向“主动决策”&#xff0c;AI Agent正成为连接数字世界与物理世界的核心枢纽。从自动处理客户服务工单的企业Agent&#xff0c;到协调多步骤科研实验的学术Agent&#xff0c;再到…

Python字典高阶操作:高效提取子集的技术与工程实践

引言&#xff1a;字典子集提取在现代数据处理中的关键作用在Python数据工程领域&#xff0c;字典结构作为核心数据载体占比高达68%&#xff08;2025年Python生态调查报告&#xff09;。字典子集提取作为高频操作&#xff0c;在以下场景中至关重要&#xff1a;​​API响应处理​…

Java学习进阶--集合体系结构

Java 集合框架 (java.util 包) 是 Java 中用于存储和操作数据集合的核心组件&#xff0c;其设计精良、功能强大且高度灵活。理解其体系结构是 Java 进阶的关键一步。一.集合的核心思想接口与实现分离集合框架的核心在于接口定义了行为规范&#xff0c;而具体实现类提供了不同的…

【Unity】Unity中的StreamingAssets文件夹

目录前言核心特性1. 文件保留原始格式2. 只读访问3. 平台兼容性不同平台下的路径一、使用1、读写2、使用UnityWebRequest读取二、AB读取的特例三、注意事项前言 StreamingAssets 文件夹是Unity项目中的一个特殊目录&#xff0c;用于存放需要在运行时访问的资源文件。这个文件夹…

[windows]torchsig 1.1.0 gr-spectrumdetect模块安装

问题 按照提供的readme git clone https://github.com/TorchDSP/torchsig.git cd torchsig pip install . cd gr-spectrumdetect mkdir build cd build cmake ../ make install cd ../examples/ bash trained_model_download.sh gnuradio-companion example.grc &安装总是出…

网络安全要了解的知识

基于2025年网络安全态势整理的十大高危漏洞类型&#xff0c;结合攻击影响范围、技术严重性及实际案例分析综合排序&#xff1a;---1. 访问控制失效- 核心问题&#xff1a;权限校验缺失导致越权操作&#xff08;如修改URL参数获取他人数据&#xff09;。 - 案例&#xff1a;202…

xml 格式化

运行效果&#xff1a;免费在线XML格式化工具 - XML代码美化/压缩/验证 代码实现&#xff1a; using Microsoft.AspNetCore.Mvc; using System.Xml; using System.Xml.Linq;namespace SaaS.OfficialWebSite.Web.Controllers {public class XmlController : Controller{public I…

Pygame音频播放的最简框架代码示例

一、示例代码&#xff1a;import pygame pygame.init() pygame.mixer.init() pygame.mixer.music.load(/home/lijiang/Music/Lynyrd Skynyrd - Sweet Home Alabama.mp3) pygame.mixer.music.play()while pygame.mixer.music.get_busy():pygame.time.Clock().tick(10)二、代码详…

在Ubuntu环境中安装Docker和Minikube的完整指南

目录 前言 准备工作 第一部分&#xff1a;安装Docker 步骤1&#xff1a;卸载旧版本&#xff08;如果有&#xff09; 步骤2&#xff1a;安装依赖包 步骤3&#xff1a;添加Docker官方GPG密钥 步骤4&#xff1a;设置Docker仓库 步骤5&#xff1a;安装Docker引擎 步骤6&am…

几个概率分布在机器学习应用示例

一、说明 在这份快速指南中&#xff0c;我们将介绍最重要的分布——从始终公平的均匀分布&#xff0c;到钟形的正态分布&#xff0c;计数点击的泊松分布&#xff0c;以及二元选择的二项分布。 没有复杂的数学&#xff0c;只有清晰的概念、真实的例子&#xff0c;以及为什么它们…

2025年测绘程序设计模拟赛一--地形图图幅编号及图廓点经纬度计算

想要在2026年参加这个比赛的&#xff0c;可以加入小编和其它大佬所建的群242845175一起来备赛&#xff0c;为2026年的比赛打基础&#xff0c;也可以私信小编&#xff0c;为你答疑解惑一、读取文件 这里有两种文件需要读取&#xff0c;所以要额外处理 internal class Read {publ…

【C++基础】名字空间与 inline 命名空间:面试高频考点与真题解析

想象一下,你正在开发一个大型项目,团队中有10名程序员同时工作。当你们分别定义了calculate()函数时,编译器会陷入混乱:它不知道应该调用哪个版本的calculate。这就是C++引入名字空间(Namespace)的根本原因! 一、名字空间(Namespace)基础概念 1.1 为什么需要名字空间…

Pytest项目_day08(setup、teardown前置后置操作)

setup模块级setup_module&#xff1a;运行于模块开始之前&#xff0c;生效一次 一个py文件&#xff08;测试文件&#xff09;就是一个模块函数级setup_function&#xff1a;对于每条&#xff08;不在类中的&#xff09;函数用例生效&#xff0c;如果函数在类中&#xff0c;那么…

trae开发c#

安装插件C# Dev Kit&#xff0c;使用的版本是1.41.11 .NET Install Tool一般会自动安装&#xff0c;安装C# dev kit的时候&#xff0c;版本2.3.7 C# 插件&#xff0c;版本2.87.31 https://marketplace.visualstudio.com/items?itemNamems-dotnettools.vscode-dotnet-runtim…

Modstart 请求出现 Access to XMLHttpRequest at ‘xx‘

在 uniapp 前端页面请求时出现类似如下错误Access to XMLHttpRequest at https://example.com/api/mtiku/config from origin http://localhost:20000 has been blocked by CORS policy: Response to preflight request doesnt pass access control check: No Access-Control…

计算机视觉CS231n学习(5)

循环神经网络 RNN recurrent neural networksRNN序列处理能力&#xff08;RNN核心作用&#xff09; RNN处理序列数据&#xff0c;相比“Vanilla”神经网络&#xff08;仅支持一对一映射&#xff09;&#xff0c;RNN支持多种序列映射模式&#xff1a; 一对一&#xff1a;传统分类…

Spring Boot Redis 缓存完全指南

Spring Boot Redis 缓存完全指南 1. 项目依赖配置 1.1 Maven依赖 <dependencies><!-- Spring Boot Redis --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><…

八股——WebSocket

文章目录1、 什么是 WebSocket&#xff1f;与 Http 协议的区别是什么&#xff1f;2、 Http 是如何升级为 WebSocket 的&#xff1f;3、 为什么 WebSocket 可以进行全双工模式的消息传输&#xff0c;而 Http 不可以&#xff1f;4、 什么是 TCP 的沾包和拆包&#xff1f;5、 WebS…

Mysql 如何使用 binlog 日志回滚操作失误的数据

文章目录一、背景二、准备测试数据1. 创建测试表2. 创建测试数据三、模拟误操作四、数据回滚&#xff08;一&#xff09;方案一&#xff1a;云数据库恢复&#xff08;二&#xff09;方案二&#xff1a;手动恢复1. 查询 binlog 日志2. 找到删除语句&#xff0c;手动还原为插入语…

wodpress结构化数据对SEO的作用

在 WordPress 网站中&#xff0c;结构化数据对 SEO 的作用主要体现在以下几个方面&#xff1a; 1. 提升搜索结果的可见性 结构化数据能够帮助搜索引擎更好地理解网页内容&#xff0c;从而以更精准的方式展示搜索结果。通过添加结构化数据&#xff0c;网页可以在搜索结果中显示…