百度翻譯APi接口實現


案例使用百度翻譯API接口,實現文本翻譯

為保證翻譯質量,請將單次請求長度控制在 6000 bytes以內。(漢字約為2000個)

 

簽名生成方法如下:

1、將請求參數中的 APPID(appid), 翻譯query(q, 注意為UTF-8編碼), 隨機數(salt), 以及平台分配的密鑰(可在管理控制台查看)

按照 appid+q+salt+密鑰 的順序拼接得到字符串1。

2、對字符串1做md5,得到32位小寫的sign。

 

注意:

1、請先將需要翻譯的文本轉換為UTF-8編碼

2、在發送HTTP請求之前需要對各字段做URL encode

3、在生成簽名拼接 appid+q+salt+密鑰 字符串時,q不需要做URL encode,在生成簽名之后,發送HTTP請求之前才需要對要發送的待翻譯文本字段q做URL encode。

將apple從英文翻譯成中文:

請求參數:

q=apple

from=en

to=zh

appid=2015063000000001

salt=1435660288

平台分配的密鑰: 12345678

生成sign:

>拼接字符串1

拼接appid=2015063000000001+q=apple+salt=1435660288+密鑰=12345678

得到字符串1 =2015063000000001apple143566028812345678

>計算簽名sign(對字符串1做md5加密,注意計算md5之前,串1必須為UTF-8編碼)

sign=md5(2015063000000001apple143566028812345678)

sign=f89f9594663708c1605f3d736d01d2d4

完整請求為:

http://api.fanyi.baidu.com/api/trans/vip/translate?q=apple&from=en&to=zh&appid=2015063000000001&salt=1435660288&sign=f89f9594663708c1605f3d736d01d2d4

也可以使用POST方法傳送需要的參數。

 public string BaiduFanYi()
        {
            string q = "蘋果";
            string appId = "159357147258369";
            string password="1s5d8d6g5f8cd4d5";
            //目標語言
            string  to = "en";
            //源語言
            string from = "zh";
            //獲得隨機數
            string randomnum = System.DateTime.Now.Millisecond.ToString();
            //獲得需要加密的字符串
            string index =appId+q+randomnum+password ;
            //進行加密
            string MD5Sign = GetMD5(index);
            //創建連接地址
            string url = string.Format("http://api.fanyi.baidu.com/api/trans/vip/translate?q={0}&from={1}&to={2}&appid={3}&salt={4}&sign={5}",
                q,from,to,appId,randomnum,MD5Sign
                );
            WebClient wc = new WebClient();
            string FanYi=wc.DownloadString(url);
            return FanYi;
        }
        /// <summary>
        /// MD5加密
        /// </summary>
        /// <param name="input">要加密的文本</param>
        /// <returns></returns>
        public string GetMD5(string input)
        {
            //判斷是否為空
            if (input == null)
            {
                return null;
            }
            //創建MD5哈希表的默認實例
            MD5 md = MD5.Create();
            //將要加密的字符串轉換為字節數組
            byte[] buffer = Encoding.UTF8.GetBytes(input);
            //計算指定的字節數組的哈希值
            byte[] data = md.ComputeHash(buffer);
            StringBuilder sb = new StringBuilder();
            //尋黃將哈需數據的每一個字節格式化為16進制字符串
            for(int i=0;i<data.Length;i++)
            {
                sb.Append(data[i].ToString("x2"));
            }
            //返回16進制字符串
            return sb.ToString();
        }

上文中APPid以及password純屬虛構,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM