public string Translate(string sourceText, string desLang, string srcLang) { if (sourceText == "" || desLang == "" || srcLang == "") { errorInfo = "Param Missing"; return(null); } // 原文 string q = sourceText; string retString; Random rd = new Random(); string salt = rd.Next(100000).ToString(); string url = "https://api.ai.qq.com/fcgi-bin/nlp/nlp_texttranslate?"; var sb = new StringBuilder() .Append("app_id=").Append(appId) .Append("&nonce_str=").Append(salt) .Append("&source=").Append(srcLang) .Append("&target=").Append(desLang) .Append("&text=").Append(HttpUtility.UrlEncode(q).ToUpper()) .Append("&time_stamp=").Append(CommonFunction.GetTimeStamp()); sb.Append("&sign=" + CommonFunction.EncryptString(sb.ToString() + "&app_key=" + appKey).ToUpper()); string req = sb.ToString(); var hc = CommonFunction.GetHttpClient(); try { retString = hc.GetStringAsync(url + req).GetAwaiter().GetResult(); } catch (System.Net.Http.HttpRequestException ex) { errorInfo = ex.Message; return(null); } catch (System.Threading.Tasks.TaskCanceledException ex) { errorInfo = ex.Message; return(null); } TencentTransOutInfo oinfo = JsonConvert.DeserializeObject <TencentTransOutInfo>(retString); if (oinfo.ret == "0") { //得到翻译结果 return(oinfo.data.target_text); } else { errorInfo = "ErrorID:" + oinfo.ret + " ErrorInfo:" + oinfo.msg; return(null); } }
public string Translate(string sourceText, string desLang, string srcLang) { if (sourceText == "" || desLang == "" || srcLang == "") { errorInfo = "Param Missing"; return(null); } // 原文 string q = sourceText; string retString; Random rd = new Random(); string salt = rd.Next(100000).ToString(); string url = "https://api.ai.qq.com/fcgi-bin/nlp/nlp_texttranslate?"; var sb = new StringBuilder() .Append("app_id=").Append(appId) .Append("&nonce_str=").Append(salt) .Append("&source=").Append(srcLang) .Append("&target=").Append(desLang) .Append("&text=").Append(HttpUtility.UrlEncode(q).ToUpper()) .Append("&time_stamp=").Append(CommonFunction.GetTimeStamp()); sb.Append("&sign=" + CommonFunction.EncryptString(sb.ToString() + "&app_key=" + appKey).ToUpper()); string req = sb.ToString(); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + req); 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); } TencentTransOutInfo oinfo = JsonConvert.DeserializeObject <TencentTransOutInfo>(retString); if (oinfo.ret == "0") { //得到翻译结果 return(oinfo.data.target_text); } else { errorInfo = "ErrorID:" + oinfo.ret + " ErrorInfo:" + oinfo.msg; return(null); } }