Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }