private string errorInfo; //错误信息 public string Translate(string sourceText, string desLang, string srcLang) { if (sourceText == "" || desLang == "" || srcLang == "") { errorInfo = "Param Missing"; return(null); } if (desLang == "kr") { desLang = "kor"; } if (srcLang == "kr") { srcLang = "kor"; } if (desLang == "fr") { desLang = "fra"; } if (srcLang == "fr") { srcLang = "fra"; } // 原文 string q = sourceText; string retString; Random rd = new Random(); string salt = rd.Next(100000).ToString(); string sign = CommonFunction.EncryptString(appId + q + salt + secretKey); var sb = new StringBuilder("https://api.fanyi.baidu.com/api/trans/vip/translate?") .Append("q=").Append(HttpUtility.UrlEncode(q)) .Append("&from=").Append(srcLang) .Append("&to=").Append(desLang) .Append("&appid=").Append(appId) .Append("&salt=").Append(salt) .Append("&sign=").Append(sign); string url = sb.ToString(); var hc = CommonFunction.GetHttpClient(); try { retString = hc.GetStringAsync(url).GetAwaiter().GetResult(); } catch (System.Net.Http.HttpRequestException ex) { errorInfo = ex.Message; return(null); } catch (System.Threading.Tasks.TaskCanceledException ex) { errorInfo = ex.Message; return(null); } BaiduTransOutInfo oinfo = JsonConvert.DeserializeObject <BaiduTransOutInfo>(retString); if (oinfo.error_code == null || oinfo.error_code == "52000") { //得到翻译结果 if (oinfo.trans_result.Count == 1) { return(oinfo.trans_result[0].dst); } else { errorInfo = "UnknownError"; return(null); } } else { errorInfo = "ErrorID:" + oinfo.error_code; return(null); } }
private string errorInfo; //错误信息 public async Task <string> TranslateAsync(string sourceText, string desLang, string srcLang) { if (sourceText == "" || desLang == "" || srcLang == "") { errorInfo = "Param Missing"; return(null); } if (desLang == "kr") { desLang = "kor"; } if (srcLang == "kr") { srcLang = "kor"; } if (desLang == "fr") { desLang = "fra"; } if (srcLang == "fr") { srcLang = "fra"; } // 原文 string q = sourceText; string retString; string salt = CommonFunction.RD.Next(100000).ToString(); string sign = CommonFunction.EncryptString(appId + q + salt + secretKey); var sb = new StringBuilder("https://api.fanyi.baidu.com/api/trans/vip/translate?") .Append("q=").Append(HttpUtility.UrlEncode(q)) .Append("&from=").Append(srcLang) .Append("&to=").Append(desLang) .Append("&appid=").Append(appId) .Append("&salt=").Append(salt) .Append("&sign=").Append(sign); string url = sb.ToString(); var hc = CommonFunction.GetHttpClient(); try { retString = await hc.GetStringAsync(url); } catch (System.Net.Http.HttpRequestException ex) { errorInfo = ex.Message; return(null); } catch (System.Threading.Tasks.TaskCanceledException ex) { errorInfo = ex.Message; return(null); } BaiduTransOutInfo oinfo = JsonConvert.DeserializeObject <BaiduTransOutInfo>(retString); if (oinfo.error_code == null || oinfo.error_code == "52000") { // 52000就是成功 if (oinfo.trans_result.Length == 0) { return(""); } else if (oinfo.trans_result.Length == 1) { return(oinfo.trans_result[0].dst); } else { var sb2 = new StringBuilder(); foreach (var entry in oinfo.trans_result) { sb2.AppendLine(entry.dst); } return(sb2.ToString()); } } else { errorInfo = "ErrorID:" + oinfo.error_code; return(null); } }
private string errorInfo; //错误信息 public string Translate(string sourceText, string desLang, string srcLang) { if (sourceText == "" || desLang == "" || srcLang == "") { errorInfo = "Param Missing"; return(null); } if (desLang == "kr") { desLang = "kor"; } if (srcLang == "kr") { srcLang = "kor"; } if (desLang == "fr") { desLang = "fra"; } if (srcLang == "fr") { srcLang = "fra"; } // 原文 string q = sourceText; string retString; Random rd = new Random(); string salt = rd.Next(100000).ToString(); string sign = CommonFunction.EncryptString(appId + q + salt + secretKey); string url = "http://api.fanyi.baidu.com/api/trans/vip/translate?"; url += "q=" + HttpUtility.UrlEncode(q); url += "&from=" + srcLang; url += "&to=" + desLang; url += "&appid=" + appId; url += "&salt=" + salt; url += "&sign=" + sign; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; request.ContentType = "text/html;charset=UTF-8"; request.UserAgent = null; request.Timeout = 6000; try { HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); myResponseStream.Close(); } catch (WebException ex) { errorInfo = "Request Timeout"; return(null); } BaiduTransOutInfo oinfo = JsonConvert.DeserializeObject <BaiduTransOutInfo>(retString); if (oinfo.error_code == null || oinfo.error_code == "52000") { //得到翻译结果 if (oinfo.trans_result.Count == 1) { return(oinfo.trans_result[0].dst); } else { errorInfo = "UnknownError"; return(null); } } else { errorInfo = "ErrorID:" + oinfo.error_code; return(null); } }