北京 工业网站建设公司排名,网站建设服务类型现状,珠海百度seo,网站建设规划书案例背景需求,
官方SDK,在SpringBoot项目中过于臃肿,需要引入的Jar包过多,
在SpringBoot中,
本文使用SpringBoot中的RestTemplate对象进行请求接口 案例代码如下
package com.example.demo2.Test;import com.example.demo2.Test.Ocr.OcrResponse;
import org.springframework.h…背景需求,
官方SDK,在SpringBoot项目中过于臃肿,需要引入的Jar包过多,
在SpringBoot中,
本文使用SpringBoot中的RestTemplate对象进行请求接口 案例代码如下
package com.example.demo2.Test;import com.example.demo2.Test.Ocr.OcrResponse;
import org.springframework.http.*;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.*;
public class OcrV3Demo2 {private static final String YOUDAO_URL https://openapi.youdao.com/ocrapi;private static final String APP_KEY AppID;private static final String APP_SECRET 密钥;public static void main(String[] args) throws IOException {RestTemplate restTemplate new RestTemplate();MultiValueMapString, String params new LinkedMultiValueMap();String q loadAsBase64(图片地址....);String salt String.valueOf(System.currentTimeMillis());String detectType 10012;String imageType 1;String langType auto;params.add(detectType, detectType);params.add(imageType, imageType);params.add(langType, langType);params.add(img, q);params.add(docType, json);params.add(signType, v3);String curtime String.valueOf(System.currentTimeMillis() / 1000);params.add(curtime, curtime);String signStr APP_KEY truncate(q) salt curtime APP_SECRET;String sign getDigest(signStr);params.add(appKey, APP_KEY);params.add(salt, salt);params.add(sign, sign);HttpHeaders headers new HttpHeaders();headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);HttpEntityMultiValueMapString, String requestEntity new HttpEntity(params, headers);ResponseEntityOcrResponse responseEntity restTemplate.exchange(YOUDAO_URL, HttpMethod.POST, requestEntity, OcrResponse.class);System.out.println(输出....);System.out.println(responseEntity.getBody());}public static String getDigest(String string) {if (string null) {return null;}char hexDigits[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F};byte[] btInput string.getBytes();try {MessageDigest mdInst MessageDigest.getInstance(SHA-256);mdInst.update(btInput);byte[] md mdInst.digest();int j md.length;char str[] new char[j * 2];int k 0;for (byte byte0 : md) {str[k] hexDigits[byte0 4 0xf];str[k] hexDigits[byte0 0xf];}return new String(str);} catch (NoSuchAlgorithmException e) {return null;}}public static String loadAsBase64(String imgFile) {File file new File(imgFile);if (!file.exists()) {System.out.println(文件不存在);return null;}try (InputStream in new FileInputStream(imgFile)) {byte[] data new byte[in.available()];in.read(data);return Base64.getEncoder().encodeToString(data);} catch (IOException e) {e.printStackTrace();}return null;}public static String truncate(String q) {if (q null) {return null;}int len q.length();return len 20 ? q : (q.substring(0, 10) len q.substring(len - 10, len));}}