md5加密类  百度翻译Demo有

package com.jddz.meta.util;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;/*** md5加密* @author ljj**/
public class MD5 {// 首先初始化一个字符数组,用来存放每个16进制字符private static final char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd','e', 'f' };/*** 获得一个字符串的MD5值** @param input 输入的字符串* @return 输入字符串的MD5值**/public static String md5(String input) throws UnsupportedEncodingException {if (input == null)return null;try {// 拿到一个MD5转换器(如果想要SHA1参数换成”SHA1”)MessageDigest messageDigest = MessageDigest.getInstance("MD5");// 输入的字符串转换成字节数组byte[] inputByteArray = input.getBytes("utf-8");// inputByteArray是输入字符串转换得到的字节数组messageDigest.update(inputByteArray);// 转换并返回结果,也是字节数组,包含16个元素byte[] resultByteArray = messageDigest.digest();// 字符数组转换成字符串返回return byteArrayToHex(resultByteArray);} catch (NoSuchAlgorithmException e) {return null;}}/*** 获取文件的MD5值** @param file* @return*/public static String md5(File file) {try {if (!file.isFile()) {System.err.println("文件" + file.getAbsolutePath() + "不存在或者不是文件");return null;}FileInputStream in = new FileInputStream(file);String result = md5(in);in.close();return result;} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return null;}public static String md5(InputStream in) {try {MessageDigest messagedigest = MessageDigest.getInstance("MD5");byte[] buffer = new byte[1024];int read = 0;while ((read = in.read(buffer)) != -1) {messagedigest.update(buffer, 0, read);}in.close();String result = byteArrayToHex(messagedigest.digest());return result;} catch (NoSuchAlgorithmException e) {e.printStackTrace();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return null;}private static String byteArrayToHex(byte[] byteArray) {// new一个字符数组,这个就是用来组成结果字符串的(解释一下:一个byte是八位二进制,也就是2位十六进制字符(2的8次方等于16的2次方))char[] resultCharArray = new char[byteArray.length * 2];// 遍历字节数组,通过位运算(位运算效率高),转换成字符放到字符数组中去int index = 0;for (byte b : byteArray) {resultCharArray[index++] = hexDigits[b >>> 4 & 0xf];resultCharArray[index++] = hexDigits[b & 0xf];}// 字符数组组合成字符串返回return new String(resultCharArray);}}

Service层

package com.jddz.meta.cp500.common.service;import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.jddz.meta.cp500.common.exception.StatisResult;
import com.jddz.meta.cp500.common.exception.StatisResultUtil;
import com.jddz.meta.util.MD5;
import com.jddz.meta.util.http.HttpClientService;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**** @author ljj**/@Service
public class TransApiService {private static final String TRANS_API_HOST = "http://api.fanyi.baidu.com/api/trans/vip/translate";@Value("#{sync['bd.id']}")//根据配置文件传入idprivate String appid;@Value("#{sync['bd.key']}")//根据配置文件传入keyprivate String securityKey;@Autowiredprivate HttpClientService httpClientService;public TransApiService() {super();}public String getTransResult(String query, String from, String to) throws Exception {Map<String, String> params = buildParams(query, from, to,appid,securityKey);return httpClientService.doGet(TRANS_API_HOST, params);}/**** @param transResult* @return*///只获取翻译后的dst 方法public StatisResult JsonToSplit(String transResult) {JSONObject jsonObject = JSONObject.fromObject(transResult);Object msg = jsonObject.get("trans_result");JSONArray array = JSONArray.fromObject(msg);String res="";for(int i=0; i<array.size();i++) {JSONObject ob  = (JSONObject) array.get(i);res=ob.getString("dst");}return StatisResultUtil.success(res);}/*** 百度翻译接口* @param query   请求翻译query* @param from     翻译源语言()* @param to     译文语言* @param appid   APP ID* @param securityKey  密钥 * @return* @throws Exception*/private Map<String, String> buildParams(String query, String from, String to,String appid,String securityKey) throws Exception  {Map<String, String> params = new HashMap<String, String>();params.put("q", query);params.put("from", from);params.put("to", to);params.put("appid", appid);// 随机数String salt = String.valueOf(System.currentTimeMillis());params.put("salt", salt);// 签名String src = appid + query + salt + securityKey; // 加密前的原文params.put("sign", MD5.md5(src));return params;}}

controller

406 报错   produces(与返回值不一致 报406错)

charset  produces 可以无需写

package com.jddz.meta.cp500.common.web;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.jddz.meta.cp500.common.service.TransApiService;
import com.jddz.meta.cp500.common.exception.StatisResult;
import com.jddz.meta.cp500.common.exception.StatisResultUtil;
/*** * @author ljj**/@Controller
@RequestMapping("/BaiduAPI")
public class FanyiAPIController {@Autowired private TransApiService transApiService;/*** * @param query* @param from* @param to* @return* @throws Exception*/@RequestMapping(value="getFanyi",produces="application/json; charset=UTF-8")produces(与返回值不一致 报406错) charset 可以无需写     @ResponseBodypublic  Object getFanyi(@RequestParam (value="query") String query,@RequestParam(value="from") String from,@RequestParam(value="to") String to)    {String transResult="";    try {query =new String(query.getBytes("iso8859-1"),"utf-8");transResult = transApiService.getTransResult(query, "auto", "zh");     StatisResult jo = transApiService.JsonToSplit(transResult);System.out.println(jo);  //com.jddz.meta.cp500.common.exception.StatisResult@6077ab06return  StatisResultUtil.success(jo);} catch (Exception e) {e.printStackTrace();}return transResult;}}

java 调用百度翻译接口相关推荐

  1. JAVA 开发升讯威在线客服系统:调用百度翻译接口实现实时自动翻译

    业余时间用 .net core 写了一个在线客服系统.并在博客园写了一个系列的文章,写介绍这个开发过程. 我把这款业余时间写的小系统丢在网上,陆续有人找我要私有化版本,我都给了,毕竟软件业的初衷就是免 ...

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

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

  3. Python爬虫:调用百度翻译接口实现中英翻译功能

    百度翻译地址:https://fanyi.baidu.com/ 上篇文章我使用了爬虫获取了有道翻译的接口,这次通过正规渠道获取翻译结果 百度翻译开放平台:http://api.fanyi.baidu. ...

  4. Python 调用百度翻译接口实现翻译

    小编分别写过有道,百度的翻译Demo,个人感觉有这么几个区别: 代码量:百度更简洁,有道太冗余: 是否收费:有道翻译免费,百度翻译超过一定量是要收费的,所以要验证key: 规范性:相比有道翻译,百度翻 ...

  5. 【调用百度翻译接口实现简单窗口的汉译英】

    与百度翻译同种方法实现简单窗口的汉译英 前言 一.思路梳理 二.思路3的文件代码展示 1.引入库 总结 前言 基于python爬虫方面,我们能做很多事,这里,我们先找到百度翻译的接口,然后自己构建逻辑 ...

  6. java调用百度翻译

    目录 一.注册 二.测试 1.参考文档 2.下载代码 3.参考代码 一.注册 打开百度翻译开放平台 http://api.fanyi.baidu.com/ 注册账号 开通通用翻译免费版服务,获取APP ...

  7. 调用百度翻译接口demo(完整ajax请求)

    //在线翻译查询(百度翻译)$('#selectBtn').click(function() {var appid = '你申请的appid';var key = '你申请的key';var salt ...

  8. 调用百度翻译接口c++api

    这是我之前录制的一个视频,里面有比较具体的讲解 哔哩哔哩自制的讲解视频 百度的接口api介绍网站 先贴个运行效果,界面没有做比较漂亮的优化,看起来比较丑哈哈哈哈啊,但是五脏俱全哦!贴个图吧 具体的实现 ...

  9. Java调用百度OCR接口实现文字识别

    博主在项目开发中需要完成一个文字识别功能,由于之前有过使用百度云平台接口进行身份证识别的经历,因此这次也是自然而然的再次选择了百度AI平台,首先需要开通百度通用文字识别功能. 然后我们需要创建一个应用 ...

最新文章

  1. 汇聚6年思想变迁:知识图谱报告幻灯片大全
  2. 蓝绿发布、滚动发布、灰度发布,有什么区别?这下明白了
  3. 配置CACTI监控MySQL数据库状态(1)准备工作
  4. couchdb 任意命令执行漏洞 cve-2017-12636
  5. 移动端事件 、zepto移动端事件
  6. 问:一行Python代码到底能干多少事情?(一)
  7. CF1413F. Roads and Ramen(树的直径,线段树)
  8. java.util.concurrent.locks.Condition文档说明
  9. Nginx----高级
  10. 人脸识别冤枉了98%的好人,伦敦警察局长:我很满意
  11. 嵌入式:中断的分类和区别
  12. CSS大美集(关于细节)
  13. JQuery window、document、 body
  14. 不到30行JS代码实现的Excel表格
  15. Cocos2d-x3.0-倾斜列表
  16. cad重新加载php命令,cad刷新命令是什么?
  17. 触摸电视电脑一体机的应用、功能优势
  18. IntelliJ IDEA 常用快捷键 ------ Windows / Mac 对比
  19. 笔记本键盘如何摇身一变机械键盘?
  20. ros构建机器人运动学模型_ROS系统玩转自主移动机器人(5)-- ROS系统建模

热门文章

  1. 安搭Share:让人体免疫系统摧毁癌症的新型药物
  2. USB限流IC,过流保护芯片
  3. 精仿马上有号账号交易平台源码支持个人二维码收款
  4. oracle dbms_repair,DBMS_REPAIR的使用
  5. Java正则表达式匹配一句英文句子(大写字母开头,结尾有句号)
  6. python正则表达式数字开头_Python基础 :正则表达式
  7. FTP基础知识_FTP服务端应用开发
  8. 杭电OJ 1159(C++)
  9. 金蝶系统中的服务器数据库在哪,金蝶财务软件中的数据库在哪里?
  10. 【力扣-20】有效的括号