C# 實現呼叫百度翻譯API做一個翻譯功能
阿新 • • 發佈:2018-12-21
appId 和 passWord 需要到百度翻譯開放平臺申請
using System; using System.Net; using System.Web.Security; using System.Web.Script.Serialization; namespace TranslateDemo { class TranslateFunction { public static string Translate(string content) { string languageFrom = "en", languageTo = "zh"; if (Translate(content, languageFrom, languageTo).Error_code == null) { return Translate(content, languageFrom, languageTo).Trans_result[0].Dst; } else return Translate(content, languageFrom, languageTo).Error_msg; } public static PostResult Translate(string content, string languageFrom, string languageTo) { string appId = "2018111519456789", passWord = "gMk8wEKxENvbpUcvFxxx", randomNum = new Random().Next().ToString(); string md5Sign = FormsAuthentication.HashPasswordForStoringInConfigFile(appId + content + randomNum + passWord, "MD5").ToLower(); string FullRequest = "http://api.fanyi.baidu.com/api/trans/vip/translate?q=" + content + "&from=" + languageFrom + "&to=" + languageTo + "&appid=" + appId + "&salt=" + randomNum + "&sign=" + md5Sign; string m_Content = new WebClient().DownloadString(FullRequest); PostResult m_postResult = new JavaScriptSerializer().Deserialize<PostResult>(m_Content); return m_postResult; } public class PostResult{ public string Error_code { set; get; } public string Error_msg { set; get; } public string From { set; get; } public string To { set; get; } public TranslateContent[] Trans_result { set; get; } } public class TranslateContent { public string Src { set; get; } public string Dst { set; get; } } } }
PostResult為百度API返回的值型別組成的一個自定義類,類裡的每個名字和百度翻譯API返回值里名字要一致。