1. 程式人生 > >使用百度翻譯api支持中轉英,中簡轉中繁等等

使用百度翻譯api支持中轉英,中簡轉中繁等等

i++ input urldecode NPU trace 輸出 相關數 append lang

一、在寫代碼之前先在在百度翻譯平臺中,申請APP_ID

  申請地址連接:http://api.fanyi.baidu.com/api/trans/product/index

二,可以看官方文檔,實際上官方有提供demo申請id後可以直接作為工具類來用了

三,以下是我寫的工具類:

package com.hailian.util.translate;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import
java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.net.URLDecoder; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Random; import net.sf.json.JSONArray; import
net.sf.json.JSONObject; public class TransApi { public static String Trans(String q,String targetlanguage) {//targetlanguage目標語言 en英語 cht中文繁體 String appid="***********";//申請的百度翻譯id String salt=String.valueOf(new Random().nextInt(100)); String sign=appid+q+salt+"*********";//id對應的密碼 MessageDigest md5;
try { md5 = MessageDigest.getInstance("MD5"); md5.update((sign).getBytes("UTF-8")); byte b[] = md5.digest(); int i; StringBuffer buf = new StringBuffer(""); for(int offset=0; offset<b.length; offset++){ i = b[offset]; if(i<0){ i+=256; } if(i<16){ buf.append("0"); } buf.append(Integer.toHexString(i)); } sign = buf.toString(); } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } String result=getResult(q,sign,appid,salt,targetlanguage); String content="{"+result; String json=getDate(content); return json; } //百度平臺(翻譯接口)相關數據 public static String getResult(String q,String sign,String appid,String salt,String targetlanguage){ String result=""; //拼接相關參數 String params="http://api.fanyi.baidu.com/api/trans/vip/translate?q="+q+"&from=auto&to="+targetlanguage+"&appid="+appid+"&salt="+salt+"&sign="+sign; try { URL url = new URL(params); URLConnection connection = url.openConnection(); //設置連接時間(10*1000) connection.setConnectTimeout(10*1000); //設置輸出 connection.setDoOutput(true); //設置輸出 connection.setDoInput(true); //設置緩存 connection.setUseCaches(false); //outputstream-----輸出流 InputStream inputstream=connection.getInputStream(); //緩存字符流 BufferedReader buffer = new BufferedReader(new InputStreamReader(inputstream)); //返回相關結果 StringBuilder builder=new StringBuilder(); while(buffer.read()!=-1){ builder.append(buffer.readLine()); } //返回相關結果 result=builder.toString(); //緩存字符流關閉操作 buffer.close(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; } //解析百度服務器平臺返回的相關數據信息 public static String getDate(String result){ String date=""; JSONObject object=JSONObject.fromObject(result); JSONArray array=object.getJSONArray("trans_result"); int length=array.size(); for(int i=0;i<length;i++){ JSONObject params=JSONObject.fromObject(array.get(i)); String str=params.getString("dst"); try { str=URLDecoder.decode(str,"utf-8"); date=str; } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return date; } public static void main(String[] args) { String trans = Trans("信息安全及保密承諾書","cht"); String transTOEn = Trans("信息安全及保密承諾書","en"); System.out.println(trans); System.out.println(transTOEn); } }

使用百度翻譯api支持中轉英,中簡轉中繁等等