• 注册
当前位置:1313e > 默认分类 >正文

C# 调用百度翻译API实现翻译功能

有次拉uistring.txt翻译时发现百度翻译有字符限制2000汉字,就想可以客户端自己调用百度翻译API进行几万行数据的处理,进行尝试:

参考网址:

1.官网API接入方式: http://api.fanyi.baidu.com/api/trans/product/apidoc  

2.C#数据解析流程:http://blog.csdn.net/wszll_alex/article/details/46381565

3.MD5解析:https://www.cnblogs.com/dgjack/archive/2010/12/30/1921492.html

实现:翻译单词 apple为汉语

 

主要代码:

 

            string myInputString = "";string mAppID = "";string mySecurityID = "";int mySalt = 0;//mAppIDmyInputStringmySaltmySecurityIDStringBuilder mySignString = new StringBuilder();string myMd5Result = string.Empty;//1.拼接字符,为了生成signmySignString.Append(mAppID);mySignString.Append(myInputString);mySignString.Append(mySalt);mySignString.Append(mySecurityID);//2.通过md5获取signbyte[] sourceMd5Byte = Encoding.Default.GetBytes(mySignString.ToString());MD5 md5 = new MD5CryptoServiceProvider();byte[] destMd5Byte = md5.ComputeHash(sourceMd5Byte);myMd5Result = BitConverter.ToString(destMd5Byte).Replace("-", "");myMd5Result = myMd5Result.ToLower();//3.获取web翻译的json结果WebClient client = new WebClient();string url = string.Format("http://api.fanyi.baidu.com/api/trans/vip/translate?q={0}&from=en&to=zh&appid={1}&salt={2}&sign={3}", myInputString, mAppID, mySalt, myMd5Result);byte[] 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(jsonReader);txtResult.Text = r.trans_result[0].dst;

 

    public class TransObj{public string from { get; set; }public string to { get; set; }public List trans_result { get; set; }}public class TransResult{public string src { get; set; }public string dst { get; set; }}

  

  

 

 

总结:1.MD5的生成, 把密码id放入md5中,然后百度那边也有我的密码id,百度进行校验。

   2.NuGet进行Json的数据处理     根据官网文档返回的字符串类型定义好数据类

      3.WebClient类的使用

 

转载于:https://www.cnblogs.com/sun-shadow/p/8179954.html

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录
相关推荐