百度翻译C#API接口

来源:互联网 发布:淘宝直通车计划 编辑:程序博客网 时间:2024/06/05 08:15
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;using System.Security.Cryptography;using System.Text;using System.Threading.Tasks;namespace Baidufy{    class Program    {        static void Main(string[] args)        {            TransApi transApi = new TransApi("appid", "securityKey");            string result = transApi.GetTransResult("你好", "auto", "auto");            Console.WriteLine(result);            Console.ReadKey();        }    }}

</pre><pre code_snippet_id="1974210" snippet_file_name="blog_20161108_5_3256585" name="code" class="csharp">using System;using System.Collections.Generic;using System.IO;using System.IO.Compression;using System.Linq;using System.Net;using System.Runtime.Serialization;using System.Runtime.Serialization.Json;using System.Security.Cryptography;using System.Text;using System.Threading.Tasks;using System.Web;namespace Baidufy{    public class TransApi    {        private static string TRANS_API_HOST = "http://api.fanyi.baidu.com/api/trans/vip/translate?q={0}&from={1}&to={2}&appid={3}&salt={4}&sign={5}";        private string appid;        private string securityKey;        public TransApi(string appid, string securityKey)        {            this.appid = appid;            this.securityKey = securityKey;        }        public string GetTransResult(string query, string from, string to)        {            string q = System.Web.HttpUtility.UrlEncode(query, System.Text.Encoding.UTF8);            Random rnd = new Random();            string salt = rnd.Next().ToString();            string sign = GetMD5(appid + query + salt + securityKey);            string address = string.Format(TRANS_API_HOST, q, from, to, appid, salt, sign);            HttpWebRequest request;            request = (HttpWebRequest)HttpWebRequest.Create(address);            request.Method = "GET";            request.ProtocolVersion = HttpVersion.Version11;            //request.Connection = "keep-alive";            request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.861.0 Safari/535.2";            request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";            request.Timeout = 10000;            //request.Headers.Add("Connection", "keep-alive");             request.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");            request.Headers.Add("Accept-Language", "zh-CN,zh;q=0.8");            request.Headers.Add("Accept-Charset", "GBK,utf-8;q=0.7,*;q=0.3");            request.CookieContainer = new CookieContainer();            HttpWebResponse response;            response = (HttpWebResponse)request.GetResponse();            Stream st;            st = response.GetResponseStream();            GZipStream temp = null;            StreamReader stReader;            if (response.ContentEncoding.ToLower().Contains("gzip"))            {                temp = new GZipStream(st, CompressionMode.Decompress, true);                stReader = new StreamReader(temp, Encoding.Default);            }            else            {                stReader = new StreamReader(st, Encoding.Default);            }            string text;            text = stReader.ReadToEnd();            stReader.Close();            if (temp != null)                temp.Close();            st.Close();            BaiduResult r = JsonGet(text);            if (r != null && r.trans_result != null && r.trans_result.Length > 0)                return r.trans_result[0].dst;            else                return "";                    }              /// <summary>          /// 加密成32位小写的MD5          /// </summary>          /// <param name="myString">传入需要加密的字符串</param>          /// <returns>返回加密后的字符串</returns>          public static string GetMD5(string myString)        {            return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(myString, "MD5").ToLower();        }        public static BaiduResult JsonGet(string jsonString)        {            if (jsonString.Length > 0)            {                var ms = new MemoryStream(Encoding.Default.GetBytes(jsonString));                return (BaiduResult)new DataContractJsonSerializer(typeof(BaiduResult)).ReadObject(ms);            }            return null;        }    }    public class BaiduResult    {        [DataMember(Order = 0, IsRequired = true)]        public string from;        [DataMember(Order = 1)]        public string to;        public class Trans_result        {            public string src;            public string dst;        }        [DataMember(Order = 2)]        public Trans_result[] trans_result;    }}

1 0
原创粉丝点击