• 百度翻译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纯属虚构,

  • 相关阅读:
    Java知识点总结
    Eclipse使用中遇到的问题及解决
    Ubuntu--64位系统安装32位的库
    Ubuntu--防火墙的使用
    Ubuntu--手动配置IP地址,网关,DNS
    tcp echo_server
    模板类继承-成员变量不可访问的问题
    brpc channel -负载均衡-NamingService三者之间的关系
    头文件依赖顺序风格
    brpc namingservice的调用栈
  • 原文地址:https://www.cnblogs.com/JueXiaoQiang/p/6947601.html
Copyright © 2020-2023  润新知