Java调用有道翻译API
因为上次发的资源用的我的APPID 导致我的服务已经停用了……
现在把地址也一并奉上 希望都可以自己注册。
APPID/密钥 注册地址:http://ai.youdao.com/login.html

public class Demo {public static void main(String[] args) {String appKey ="APPID";String query = "good";String salt = String.valueOf(System.currentTimeMillis());String from = "en";String to = "zh_CHS";String sign = md5(appKey + query + salt+ "密钥");Map<String, String> params = new HashMap<String, String>();params.put("q", query);params.put("from", from);params.put("to", to);params.put("sign", sign);params.put("salt", salt);params.put("appKey", appKey);//这里打印出来的是翻译的地址  下面会讲解System.out.println(getUrlWithQueryString("https://openapi.youdao.com/api", params));}/*** 生成32位MD5摘要* @param string* @return*/public static String md5(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{/** 获得MD5摘要算法的 MessageDigest 对象 */MessageDigest mdInst = MessageDigest.getInstance("MD5");/** 使用指定的字节更新摘要 */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;}}/*** 根据api地址和参数生成请求URL* @param url* @param params* @return*/public static String getUrlWithQueryString(String url, Map<String, String> params) {if (params == null) {return url;}StringBuilder builder = new StringBuilder(url);if (url.contains("?")) {builder.append("&");} else {builder.append("?");}int i = 0;for (String key : params.keySet()) {String value = params.get(key);if (value == null) { // 过滤空的keycontinue;}if (i != 0) {builder.append('&');}builder.append(key);builder.append('=');builder.append(encode(value));i++;}return builder.toString();}/*** 进行URL编码* @param input* @return*/public static String encode(String input) {if (input == null) {return "";}try {return URLEncoder.encode(input, "utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}return input;}
}

官方API 只给出的生成了调用的地址生成的类似:
https://openapi.youdao.com/api?sign=5F8D54B7302A3989E49D3FB7E9E821E4&to=zh_CHS&q=good&from=en&appKey=6916ca241e90c93a&salt=1498449405086

  • sign:签名,通过md5(appKey+q+salt+密钥)生成
  • to和form:是语种方向
  • q:翻译的内容
  • appkey:应用 ID
  • salt:一个随机值

复制这个地址到浏览器就可以使用 返回的是一串JSON 我的服务停了…你们注册之后可以试一下 看一下返回的结果

然后可以通过JsonObject 来读取这段内容

/*** * @author S. Yichen* @param query 查询的词  多词用\n* @param from 原文语种可以为auto* @param to 必填*/public static String readJsonFromUrl(String query,String from, String to ) throws IOException, JSONException {//生成查询地址String url = creatUrl(query, from, to);System.out.println(url);InputStream is = new URL(url).openStream();String str = null;StringBuilder result = new StringBuilder();try {BufferedReader reader = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));while ((str = reader.readLine()) != null) {result.append(str).append("\n");}JSONObject json = new JSONObject(result.toString());//开发者自行处理错误//停用返回401  String error_code = json.getString("errorCode");if (!"0".equals(error_code)) {System.out.println("出错代码:" + error_code);System.out.println("出错信息:" + json.getString("errorCode"));return null;}//获取返回翻译结果JSONArray array = (JSONArray) json.get("translation");StringBuffer text = new StringBuffer();int i = 0;//考虑到批量查询   查询的词中间用\n分隔  为了返回的是个字符串  此处是拼起来了 用的时候分割也可以  你也可以直接用集合接收  随你高兴for (; i < array.length(); i++) {text.append(array.get(i)+"\n");}return text.toString();} finally {is.close();}}

下面这段是一个测试:

 public static void main(String[] args) {String str1 = "wo+ni";//考虑到翻译词语可能会有特殊符号  必须经过处理 不然会错误String regEx = "[ _`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|\n|\r|\t";Pattern p = Pattern.compile(regEx);Matcher m = p.matcher(str1);String str = "中国\n老师";String[] split2 = str.split("\n");System.out.println(split2.length);try {String result = readJsonFromUrl(str,"zh-CHS","en");System.out.println(result);String[] split = result.split("\n");List<String> list = Arrays.asList(split);for (String string : list) {System.out.println(string);}System.out.println(list.size());} catch (IOException e) {e.printStackTrace();} catch (JSONException e) {e.printStackTrace();}}

大概有道翻译的就这么多,必应翻译如果哪位大神知道怎么注册APPID, 烦请告知 谢谢

Java调用有道翻译API包括APPID/密钥地址注册相关推荐

  1. Java 调用 有道翻译API

    利用有道API进行翻译     import java.io.BufferedReader; import java.io.IOException; import java.io.InputStrea ...

  2. python有道翻译接口-Python通过调用有道翻译api实现翻译功能示例

    本文实例讲述了Python通过调用有道翻译api实现翻译功能.分享给大家供大家参考,具体如下: 通过调用有道翻译的api,实现中译英.其他语言译中文 Python代码: # coding=utf-8 ...

  3. Python 调用有道翻译api接口翻译外文网站的整篇西班牙文实战演示

    Python 调用有道翻译 api 接口翻译整篇西班牙文实战演示 第一章:翻译效果展示 ① 翻译文章示例一[阿尔卡拉门的无海摩纳哥:"不到4万欧元,你就不能在这里租任何东西."] ...

  4. 迎战2022 - Python中文翻译《环球时报》整篇文章实战演示,调用有道翻译API接口进行英文转中文翻译实例训练

    Python 调用有道翻译 API 接口翻译<环球时报>整篇文章实战演示 第一章:翻译效果展示 ① 翻译文章示例一[得益于中国援助的数字电视,喀麦隆农村社区享受着非洲国家杯] ② 翻译文章 ...

  5. 如何调用有道翻译API(Java,HTTP)

    申请Key 首先如图进入有道翻译,在下方点击"有道翻译API". 紧接着来调用数据接口,按提示完成下列输入框. 如下图所示,已经申请成功了. 下图是官方给的示例,可以有xml和js ...

  6. python有道翻译接口-Python调用有道翻译api实现翻译

    通过调用有道翻译的api,实现中译英.其他语言译中文 代码: # coding=utf-8 import urllib import urllib2 import json import time i ...

  7. 在iPad上利用pythonista(python3.6)调用有道翻译API实现单词的批量翻译

    目录 准备工作 参考资料 代码 结果 原因:有很多单词要背,然后一开始一个一个查单词意思,令人智熄,于是心想批量翻译. 准备工作 一台装有pythonista的iPad (当然用电脑肯定是可以的,只不 ...

  8. python数据分析 pandas对某列Series调用有道翻译API进行翻译

    需求:使用pandas对船舶数据分析中,爬取下来的一些字段是英文的,将某列Series的英文翻译成中文 解决方案:这里封装了一个对某列不同语言的Series进行翻译的类 思路:因为翻译接口有访问次数的 ...

  9. java有道翻译_Java 调用 有道翻译API

    利用有道API进行翻译 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRea ...

最新文章

  1. OpenCV-Python:K值聚类
  2. 收藏 | 计算机视觉中的Transformer
  3. 报名 | 2019全球AI文创大赛开启项目征集!
  4. ContentObserver类的使用
  5. 科达正式发布PPP业务支持计划
  6. elasticsearch aggregation的入门案例
  7. 集群环境下,你不得不注意的ASP.NET Core Data Protection 机制
  8. 海量 GPU 等你来,OpenMMLab 岗位全开!
  9. 王传福回应“芯片短缺”:比亚迪没有受到丝毫影响
  10. [Svn不提交Classes文件夹下的文件][SVN不交付Classes解决方案]
  11. python爬虫审查元素_python爬虫3——获取审查元素(板野友美吧图片下载)
  12. VS2010 MVC的 安装
  13. 程序猿最喜欢哪一个浏览器?
  14. linux awk 打印最后一列,使用awk打印从第n个到最后一个的所有列
  15. Attention机制原理
  16. BOM:04-BOM有哪些形式?(按用途划分)
  17. MYSQL No space left on device
  18. 佐助题库1000:1+2+3+N
  19. 史上最大界面升级!微软 Windows 10 21H2!
  20. H5页面是什么意思?H5游戏怎么做?

热门文章

  1. 【飞桨PaddleSpeech语音技术课程】— 一句话语音合成全流程实践
  2. linux下磁盘情况查询命令
  3. 2022年打工人转行实录!你后悔转行了吗?
  4. “大牌”纷纷入驻智能家居,小米能否守住高地?
  5. 教育行业crm管理解决方案 - whale帷幄
  6. WIN11添加我的电脑图标等的方法
  7. 利用json实现vivo x20手机评论的爬取
  8. html乡愁代码,Homesick 乡愁
  9. 个人记录002--IAP程序做跳转的时候检查栈顶地址问题,(ck_addr0x2FFE0000)==0x20000000
  10. Android -- 创建数据库到SD卡