zoukankan      html  css  js  c++  java
  • 使用百度翻译api支持中转英,中简转中繁等等

    一、在写代码之前先在在百度翻译平台中,申请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);
        }
    }
  • 相关阅读:
    Linux--sed使用
    header函数的用法
    php的cli命令行接口
    extract函数在表单提交中提供的方便之处
    sersync实时同步备份的安装
    Centos7 服务器异常处理
    MySQL之——崩溃-修复损坏的innodb:innodb_force_recovery
    记一次oracle内存分配不足,前端访问500报错,如何扩容oracle的memory_target内存
    mysql sql语句整理
    关于控制mysql的binlog日志刷入磁盘频率的参数理解
  • 原文地址:https://www.cnblogs.com/dsh2018/p/10049767.html
Copyright © 2011-2022 走看看