Java调用百度翻译openapi实现简单翻译功能

  • 准备工作
  • 需要添加的依赖
  • 需要用到的工具类(MD5加密)
  • 主工具类代码:

本人职场小白,代码不足之处很多,希望指教。

准备工作

首先得去百度翻译开发者平台申请一个账号,注册,填完信息后才能使用账号,申请获得的APPID和密钥是必不可少滴。

需要添加的依赖

 <!-- Json Support --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.1.43</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.10</version></dependency>

需要用到的工具类(MD5加密)

package com.fxy.utils;import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;public class MD5Util {/** * 使用md5的算法进行加密 */public static String md5(String plainText) {if(plainText!=null){//存放哈希值结果的 byte 数组。byte[] secretBytes = null;try {//getInstance("md5"):返回实现指定摘要算法的 MessageDigest 对象//digest(byte[] ..)使用指定的 byte 数组对摘要进行最后更新,然后完成摘要计算secretBytes = MessageDigest.getInstance("md5").digest(plainText.getBytes());} catch (NoSuchAlgorithmException e) {throw new RuntimeException("没有md5这个算法!");}String md5code = new BigInteger(1, secretBytes).toString(16);for (int i = 0; i < 32 - md5code.length(); i++) {md5code = "0" + md5code;}return md5code;}else{return null;}}public static void main(String[] args) {System.out.println(md5("123"));}
}

主工具类代码:

package com.fxy.utils;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;import java.io.IOException;
import java.util.Random;/*** @author fuxingyun* @version 1.0.0* 通过调用百度翻译openapi完成翻译功能,更多语种的翻译可参阅:http://fanyi-api.baidu.com/api/trans/product/apidoc*/
public class BT {/*** 自动检测语言*/public static final String AUTO = "auto";/*** 中文*/public static final String ZH = "zh";/*** 英语*/public static final String EN = "en";/*** 繁体中文*/public static final String CHT = "cht";/*** 要翻译的词条*/private String q;private String from;private String to;/*** 百度翻译开发者信息的APP ID* 上面图片上的APP ID*/private final String APPID = "xxxx";private String salt = new Random().nextInt(99999)+"";/*** 百度翻译开发者信息的密钥:上面图片上的密钥*/private final String KEY = "xxxx";//    private String sign = MD5Util.md5(APPID + q + salt + KEY);private String sign;private String url;private static BT bt = new BT();private BT(){}/**** @return BT,获取本类实例*/public static BT getInstance(){return bt;}/**** @param word:要翻译的词条* @param from:源语种* @param to:目标语种* @return 获取翻译的结果*/public String translate(String word, String from, String to){this.q = word;this.from = from;this.to = to;this.sign = MD5Util.md5(APPID + this.q + salt + KEY);this.url = "http://api.fanyi.baidu.com/api/trans/vip/translate?q="+this.q+"&from="+this.from+"&to="+this.to+"&appid="+APPID+"&salt="+this.salt+"&sign="+this.sign;String result = null;try {result = doGet(url);} catch (IOException e) {e.printStackTrace();throw new RuntimeException("发送doGet请求时,出现错误");}return result;}/**** @param url 调用百度翻译openapi的url* @return 返回的字符串结果* @throws IOException*/private String doGet(String url) throws IOException {CloseableHttpClient httpClient = HttpClients.createDefault();HttpGet httpGet = new HttpGet(url);CloseableHttpResponse response = httpClient.execute(httpGet);
//        System.out.println("StatusLine:"+response.getStatusLine());HttpEntity entity = response.getEntity();String str = EntityUtils.toString(entity);
//        System.out.println(str);JSONObject jsonObject = (JSONObject) JSON.parse(str);JSONArray jsonArray = (JSONArray) jsonObject.get("trans_result");JSONObject result = (JSONObject)jsonArray.get(0);return result.get("dst").toString();}
}

Java调用百度翻译openapi实现简单翻译功能相关推荐

  1. java调用百度翻译_Java调用百度API实现翻译-Go语言中文社区

    下面是Java调用百度API实现翻译的具体步骤: 一.在写代码之前先在在百度翻译平台中,申请APP_ID 申请地址申请的详见点击打开链接 申请之后,会得到APP_ID和SECURITY_KEY 二.j ...

  2. java调用百度地图API依据地理位置中文获取经纬度

    百度地图api提供了非常多地图相关的免费接口,有利于地理位置相关的开发,百度地图api首页:http://developer.baidu.com/map/. 博主使用过依据地理依据地理位置中文获取经纬 ...

  3. Java调用存储过程(返回:简单类型VARCHAR、自定义对象STRUCT、列表数组VARRAY)

    ORACLE 存储过程 练习七 数组专题 写在前面的废话 由于工作需要经常用到 ORACLE存储过程 其中数组是不可避免的一组成元素.那么让我们来体会一下 ORACLE存储过程的数组到低是如何使用的. ...

  4. Java调用百度AI实现人体属性分析

    Java调用百度AI实现人体属性分析 好久没有更新了...闲来无事发一下模仿百度AI的人体属性分析. 百度AI效果图如下: 本人开发效果图如下: 界面大家可以忽略........下面讲讲代码实现 1. ...

  5. Java调用百度OCR文字识别API实现图片文字识别软件

    java_baidu_ocr Java调用百度OCR文字识别API实现图片文字识别软件 这是一款小巧方便,强大的文字识别软件,由Java编写,配上了窗口界面 调用了百度ocr文字识别API 识别精度高 ...

  6. Java调用百度API实现图像识别

    Java调用百度API实现图像识别 最近在做一个关于识别的小功能,翻阅了一堆资料,也实践自己去实现这个功能,最后识别的结果不是那么理想.这里介绍一个完全可以商用以及识别率超高的百度ai接口 1.为什么 ...

  7. Java调用百度API生成短网址

    由于百度短网址旧API更新,故更新下原博客内容(仅供参考),希望小伙伴们以官方API为主,以防影响使用. 官方API:https://dwz.cn/console/apidoc package com ...

  8. Java调用百度API出现{status:211,message:APP SN校验失败}

    Java调用百度API出现{"status":211,"message":"APP SN校验失败"} {"status" ...

  9. JS调用百度api接口——实现简单的百度页面

    描述: JS调用百度api接口--实现简单的百度页面 效果: 实现: css文件: @charset "utf-8"; /* CSS Document */ *{margin: 0 ...

  10. c语言实现爬虫功能,用C/C 扩展Python语言_python 调用c语言 python实现简单爬虫功能_python实现简单爬虫...

    用C/C 扩展Python语言 Python是一门功能强大的脚本语言,它的强大不仅表现在功能上,还表现在其扩展性上.她提供大量的API以方便程序员利用C/C++对Python进行扩展.因为执行速度慢几 ...

最新文章

  1. MySQL 字段类型知识
  2. java 中的内部类介绍
  3. InnoDB和MyISAM的区别与选择
  4. 2018ICPC-ACM XIAN Invitation Onsite
  5. C# 使用阿里云发送短信
  6. AS 2.0新功能 Instant Run
  7. jvisualvm离线安装visualgc插件
  8. 【知云】第六期:数据级异地容灾如何实现?阿里云帮你打通数据的“任督二脉”...
  9. sublime中的emmet插件的使用技巧
  10. 大厂面试必问!疯狂Java讲义第五版pdf在线阅读
  11. python 循环语句s =2+22+222+2222之和_python基础2
  12. cubemx stm32 afm3000模块 气体流量传感器 驱动代码
  13. 稀土配合物Ln(DBM)3(Cz-PBM)|Tb(DBM)3(Cz-PBM)|Gd(DBM)3(Cz-PBM)|Ir(L)2(DBM-Ox)Ir(L)2(DBM-Cz)qiyue
  14. python正则匹配中文/英文/数字/其它字符
  15. 对比灵敏度丨信噪比 - 开会用的全向麦克风应该怎么选?
  16. Hisense E76mini查看手机IP
  17. springboot设置运行内存_spring boot应用优化,6s内启动,内存减半
  18. 字体设计中什么是断笔设计啊
  19. CentOS8安装后切换桌面
  20. 钉钉显示服务器升级是什么意思,服务器升级自动通知钉钉群并报告环境功能

热门文章

  1. 西安交大计算机专业考研复试,西交大的计算机考研初试+复试经历
  2. 2019年Java春招汇总,技术类校招社招千道面试题,几百份大厂面经(附答案+考点)...
  3. 计算机广告制作介绍,计算机广告制作.ppt
  4. 【为什么电脑插上HDMI线之后,电脑没有了声音解决方案】
  5. [NIPS 18] Stacked Semantics-Guided Attention Model for Fine-Grained Zero-Shot Learning
  6. 苦难是屈辱,还是财富?
  7. 圣诞节贺卡计算机基础知识,制作圣诞节贺卡 如何制作圣诞节贺卡?圣诞节电子贺卡制作方法|电脑制作圣诞节贺卡...
  8. 明明办了100M宽带,下载速度为何不到10M/s?
  9. html.ex.day02
  10. c语言中字符型char数据在内存中占,互联网常识:在c语言中char型数据在内存中的储存形式为什么...