首页 > 编程语言 >JAVA对接百度翻译

JAVA对接百度翻译

时间:2024-11-20 17:43:09浏览次数:3  
标签:JAVA String 对接 return query import apache org 百度

官方登录链接百度翻译开放平台 (baidu.com)

注册教程百度翻译开放平台 (baidu.com)

创建TranslateUtils工具类

import org.apache.commons.codec.digest.DigestUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.net.URLEncoder;
@Component
public class TranslateUtils {

    @Value("${translate.app-id}")
    private String apiId; //注册账号的APIID(在开发者信息里面找)
    @Value("${translate.secret-key}")
    private String secretKey;//注册账号的密钥(在开发者信息里面找)

    /**
     * 使用百度翻译
     * @param query 要翻译的文本
     * @param from 要翻译的文本语言(这里默认使用auto自动识别)
     * @param to 要翻译的目标语言
     * @return
     */
    public String translate(String query,String from,String to) {

        try {

            String salt = String.valueOf(System.currentTimeMillis());
            String sign = apiId + query + salt + secretKey; // 替换为您的SECRET_KEY
            //注意这里加密出来的一定要小写,要不然会报54001
            String signMd5 = DigestUtils.md5Hex(sign);
            //拼接url
            String url = String.format("http://api.fanyi.baidu.com/api/trans/vip/translate?" +
                            "q=%s&from=%s&to=%s&appid=%s&salt=%s&sign=%s",
                    URLEncoder.encode(query, "UTF-8"), from, to, apiId, salt, signMd5);

            HttpClient client = HttpClients.createDefault();
            HttpGet request = new HttpGet(url);
            HttpResponse response = client.execute(request);

            String result = EntityUtils.toString(response.getEntity(), "UTF-8");
            //解析返回结果
            String trans = TransUtils.getTrans(result);
            if (trans.equals("20003")){
                //返回原来的文本
                return query;
            }
            return trans;

        }catch (Exception e){
             return query;
        }
    }
}

创建json解析TransUtils工具类

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.stereotype.Component;

@Component
public class TransUtils {
    public static String getTrans(String result) {
        try {
            JSONObject jsonObject = new JSONObject(result);
            String from = jsonObject.getString("from");
            String to = jsonObject.getString("to");
            JSONArray transResults = jsonObject.getJSONArray("trans_result");
            String src = transResults.getJSONObject(0).getString("src");
            String dst = transResults.getJSONObject(0).getString("dst");
            return dst;
        } catch (JSONException e) {
            //e.printStackTrace();
            return "20003";
        }
    }
}

接着在对应的模块引用json.jar

标签:JAVA,String,对接,return,query,import,apache,org,百度
From: https://blog.csdn.net/wj520131/article/details/143921313

相关文章

  • 后端-Result.java工具类和SystemCode.java工具类
    一.Result.java工具类packagecom.hs.util;/** *响应格式类 *作用:统一服务端的响应数据格式 */publicclassResult<T>{  /**   *响应代码   */  privateintstatus;  /**   *响应信息   */  privateStringmessa......
  • JAVA题--1
    1.求一个整数,在内存当中存储时,二进制1的个数。2.给定两个数,求这两个数的最大公约数   例如: 输入:2040  输出:203.求出0~n之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1^3+5^3+3^3,则153是一个“水......
  • Java BeanUtils 使用详解
            Java中的BeanUtils是一组用于操作JavaBean的工具,它允许你在不了解JavaBean的具体内部结构的情况下,访问和修改其属性。本文将详细介绍JavaBeanUtils的使用,包括如何获取和设置JavaBean的属性,复制属性,以及如何处理嵌套属性和集合属性。什么是JavaBean    ......
  • java factory 创建
    publicinterfaceMonitorInterface{voidexcute(List<LabelMonitor>monitorResponseDTOList)}@Service@Slf4jpublicclassLabelMonitorImplextendsMonitorLabelHandlerimplementsMonitorInterface{ @AllArgsConstructor@NoArgsConstructorpu......
  • Java期末复习暨学校第十次上机课作业
    Java期末复习暨学校第十次上机课作业:(1):加深对多态的理解。(2):掌握内部类的分类。(3):掌握内部类的应用。第一题:输出结果:第二题: 输出结果:第三题:抽象类的抽象方法不能有方法体。  Rectangle类继承Shape类,并实现Resizable和Colorable接口,重写draw方法。 new......
  • Java线程池创建
    ......
  • Java操作Hbase数据库
    ```plaintext/*Hbaseapi中基础我们要做的任务:1、如何创建一张表2、如何删除一张表3、如何向hbase表中插入一列数据4、如何向hbase表中插入一批数据5、如何获取一列数据6、如何获取批量列数据7、如何创建预......
  • 【Java】使用Socket手搓三次握手 从原理到实践
    【Java】使用Socket手搓三次握手从原理到实践本身这次打算将三次握手、四次挥手都做出来。但发现内容越来越多了,所以就只实现了三次握手。但依然为后续操作做了大量的铺垫。系列文章:使用Socket在局域网中进行广播【Java】使用Socket实现查找IP并建立连接?手把手教你【J......
  • 33 个 JavaScript 开发者都应该知道的概念
    你真的认为你了解多少JavaScript?你可能知道如何编写函数,理解简单的算法,甚至可以编写类。但是你知道什么是类型化数组吗?你不需要现在就了解所有这些概念,但最终你会在你的职业生涯中用到它们。这就是我建议你收藏此列表的原因,因为你很可能会遇到其中一个主题,然后你会想......
  • javaweb学习 day4 JavaScript
    JavaScript主要负责网页的行为(交互交过)js引入方式内部脚本:将JS代码定义在HTML页面中1.JS代码必须位于标签之中2.在HTML文档中,常见事件://onload:页面/元素加载完成后触发functionload(){console.log("页面加载完成...")}//onclick:鼠标点击事件functionfn1(){......