zoukankan      html  css  js  c++  java
  • 百度翻译

    /// <summary>
        /// 百度翻译
        /// </summary>
        public class BaiDuTransHelp
        {
            /// <summary>
            /// 密钥
            /// </summary>
            private readonly static string TransKey = ConfigurationManager.AppSettings["TransKey"];
    
            /// <summary>
            /// App ID
            /// </summary>
            private readonly static string AppID = ConfigurationManager.AppSettings["AppID"];
    
            /// <summary>
            /// 翻译
            /// </summary>
            /// <param name="query"></param>
            /// <param name="toLan">zh:中文,en:英语,cht:繁体中文</param>
            /// <returns></returns>
            public static string Trans(string query, string toLan)
            {
                WebClient client = new WebClient();
                Random rd = new Random();
                string rdNum = rd.Next(1000).ToString();
    
                string sign = AppID + GetUTF8Str(query) + rdNum + TransKey;
    
                sign = MD5.Md5Hash(sign);
    
                string url = string.Format("http://api.fanyi.baidu.com/api/trans/vip/translate?q={0}&from=auto&to={1}&appid={2}&salt={3}&sign={4}",
                    HttpUtility.UrlEncode(query), HttpUtility.UrlEncode(toLan), HttpUtility.UrlEncode(AppID), HttpUtility.UrlEncode(rdNum), HttpUtility.UrlEncode(sign));
                var buffer = client.DownloadData(url);
                string result = Encoding.UTF8.GetString(buffer);
                StringReader sr = new StringReader(result);
                JsonTextReader jsonReader = new JsonTextReader(sr);
                JsonSerializer serializer = new JsonSerializer();
                var r = serializer.Deserialize<TransObj>(jsonReader);
                string toStr = string.Empty;
                if (r.trans_result != null)
                {
                    toStr = r.trans_result[0].dst;
                }
                return toStr;
            }
    
            /// <summary>
            /// 获取Utf-8编码字符串
            /// </summary>
            /// <param name="unicodeString"></param>
            /// <returns></returns>
            public static string GetUTF8Str(string unicodeString)
            {
                UTF8Encoding utf8 = new UTF8Encoding();
                Byte[] encodedBytes = utf8.GetBytes(unicodeString);
                String decodedString = utf8.GetString(encodedBytes);
                return decodedString;
            }
    
            private class TransObj
            {
                public string from { get; set; }
                public string to { get; set; }
                public List<TransResult> trans_result { get; set; }
            }
    
            private class TransResult
            {
                public string src { get; set; }
                public string dst { get; set; }
            }
        }
  • 相关阅读:
    iOS 基础类解析
    冒泡排序Vs直接选择排序
    【HDOJ 5419】 Victor and Toys (排列组合)
    我的互联网安全观
    Linux进程间通信-信号量
    AFNetworking 3.0携带參数上传文件Demo
    ANDROID窗体管理服务实现机制和架构分析
    【ODPS】阿里云ODPS中带分区的表操作
    Android自定义组件系列【13】——Android自定义对话框如此简单
    微信支付开发(2) 静态链接Native支付
  • 原文地址:https://www.cnblogs.com/tangchun/p/6950909.html
Copyright © 2011-2022 走看看