码迷,mamicode.com
首页 > Windows程序 > 详细

百度翻译APi接口实现

时间:2017-06-06 01:05:12      阅读:1650      评论:0      收藏:0      [点我收藏+]

标签:百度   案例   pid   返回   developer   字符   i++   拼接   desktop   

案例使用百度翻译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纯属虚构,

百度翻译APi接口实现

标签:百度   案例   pid   返回   developer   字符   i++   拼接   desktop   

原文地址:http://www.cnblogs.com/JueXiaoQiang/p/6947601.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!