Java调用百度翻译openapi实现简单翻译功能
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实现简单翻译功能相关推荐
- java调用百度翻译_Java调用百度API实现翻译-Go语言中文社区
下面是Java调用百度API实现翻译的具体步骤: 一.在写代码之前先在在百度翻译平台中,申请APP_ID 申请地址申请的详见点击打开链接 申请之后,会得到APP_ID和SECURITY_KEY 二.j ...
- java调用百度地图API依据地理位置中文获取经纬度
百度地图api提供了非常多地图相关的免费接口,有利于地理位置相关的开发,百度地图api首页:http://developer.baidu.com/map/. 博主使用过依据地理依据地理位置中文获取经纬 ...
- Java调用存储过程(返回:简单类型VARCHAR、自定义对象STRUCT、列表数组VARRAY)
ORACLE 存储过程 练习七 数组专题 写在前面的废话 由于工作需要经常用到 ORACLE存储过程 其中数组是不可避免的一组成元素.那么让我们来体会一下 ORACLE存储过程的数组到低是如何使用的. ...
- Java调用百度AI实现人体属性分析
Java调用百度AI实现人体属性分析 好久没有更新了...闲来无事发一下模仿百度AI的人体属性分析. 百度AI效果图如下: 本人开发效果图如下: 界面大家可以忽略........下面讲讲代码实现 1. ...
- Java调用百度OCR文字识别API实现图片文字识别软件
java_baidu_ocr Java调用百度OCR文字识别API实现图片文字识别软件 这是一款小巧方便,强大的文字识别软件,由Java编写,配上了窗口界面 调用了百度ocr文字识别API 识别精度高 ...
- Java调用百度API实现图像识别
Java调用百度API实现图像识别 最近在做一个关于识别的小功能,翻阅了一堆资料,也实践自己去实现这个功能,最后识别的结果不是那么理想.这里介绍一个完全可以商用以及识别率超高的百度ai接口 1.为什么 ...
- Java调用百度API生成短网址
由于百度短网址旧API更新,故更新下原博客内容(仅供参考),希望小伙伴们以官方API为主,以防影响使用. 官方API:https://dwz.cn/console/apidoc package com ...
- Java调用百度API出现{status:211,message:APP SN校验失败}
Java调用百度API出现{"status":211,"message":"APP SN校验失败"} {"status" ...
- JS调用百度api接口——实现简单的百度页面
描述: JS调用百度api接口--实现简单的百度页面 效果: 实现: css文件: @charset "utf-8"; /* CSS Document */ *{margin: 0 ...
- c语言实现爬虫功能,用C/C 扩展Python语言_python 调用c语言 python实现简单爬虫功能_python实现简单爬虫...
用C/C 扩展Python语言 Python是一门功能强大的脚本语言,它的强大不仅表现在功能上,还表现在其扩展性上.她提供大量的API以方便程序员利用C/C++对Python进行扩展.因为执行速度慢几 ...
最新文章
- MySQL 字段类型知识
- java 中的内部类介绍
- InnoDB和MyISAM的区别与选择
- 2018ICPC-ACM XIAN Invitation Onsite
- C# 使用阿里云发送短信
- AS 2.0新功能 Instant Run
- jvisualvm离线安装visualgc插件
- 【知云】第六期:数据级异地容灾如何实现?阿里云帮你打通数据的“任督二脉”...
- sublime中的emmet插件的使用技巧
- 大厂面试必问!疯狂Java讲义第五版pdf在线阅读
- python 循环语句s =2+22+222+2222之和_python基础2
- cubemx stm32 afm3000模块 气体流量传感器 驱动代码
- 稀土配合物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
- python正则匹配中文/英文/数字/其它字符
- 对比灵敏度丨信噪比 - 开会用的全向麦克风应该怎么选?
- Hisense E76mini查看手机IP
- springboot设置运行内存_spring boot应用优化,6s内启动,内存减半
- 字体设计中什么是断笔设计啊
- CentOS8安装后切换桌面
- 钉钉显示服务器升级是什么意思,服务器升级自动通知钉钉群并报告环境功能
热门文章
- 西安交大计算机专业考研复试,西交大的计算机考研初试+复试经历
- 2019年Java春招汇总,技术类校招社招千道面试题,几百份大厂面经(附答案+考点)...
- 计算机广告制作介绍,计算机广告制作.ppt
- 【为什么电脑插上HDMI线之后,电脑没有了声音解决方案】
- [NIPS 18] Stacked Semantics-Guided Attention Model for Fine-Grained Zero-Shot Learning
- 苦难是屈辱,还是财富?
- 圣诞节贺卡计算机基础知识,制作圣诞节贺卡 如何制作圣诞节贺卡?圣诞节电子贺卡制作方法|电脑制作圣诞节贺卡...
- 明明办了100M宽带,下载速度为何不到10M/s?
- html.ex.day02
- c语言中字符型char数据在内存中占,互联网常识:在c语言中char型数据在内存中的储存形式为什么...