说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

C#调用百度翻译API接口实现英汉互译

HTML文档下载 WORD文档下载 PDF文档下载
虽然百度翻译相对于谷歌翻译在准确性方面还有很大的提升空间,但网络的现实情况及百度翻译接口的免费易用性方面让我们选择百度翻译接口。

虽然百度翻译相对于谷歌翻译在准确性方面还有很大的提升空间,但网络的现实情况及百度翻译接口的免费易用性方面让我们选择百度翻译接口。

 

百度翻译API接入文档请参考: http://api.fanyi.baidu.com/api/trans/product/apidoc

 

文档中已经非常详细了,几个要点:
1、用MD5生成签名的时候需要用UTF8编码
2、对需要翻译的文本要进行url编码,UrlEncode的时候需要采用UTF8编码,生成签名时的翻译文本不需要url编码。

 

下面给出代码片段

 

public string Translate(string q, string from, string to){	// 生成随机数	Random r = new Random(int.MaxValue);	string salt = r.Next(1000000, int.MaxValue).ToString();	// 生成签名	string sign = MD5(_appid + q + salt + _key, Encoding.UTF8);	// 请求网址	string url = string.Format("http://api.fanyi.baidu.com/api/trans/vip/translate?appid={0}&salt={1}&from={2}&to={3}&sign={4}", _appid, salt, from, to, sign);	// 以POST方式发送数据(非WEB项目需要添加引用C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Web.dll)	string postData = string.Format("q={0}", System.Web.HttpUtility.UrlEncode(q, Encoding.UTF8));	byte[] bytes = Encoding.UTF8.GetBytes(postData);	WebClient client = new WebClient();	client.Encoding = Encoding.UTF8;	client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");	client.Headers.Add("ContentLength", postData.Length.ToString());	byte[] responseData = client.UploadData(url, "POST", bytes);	// 取得响应结果 	string strResult = Encoding.GetEncoding("utf-8").GetString(responseData);	string strFanyi = "";	//反序列化结果	BaiduFanyiJson fanyi = JsonConvert.DeserializeObject<BaiduFanyiJson>(strResult);	if (fanyi.IsNull)	{		ErrorResult error = JsonConvert.DeserializeObject<ErrorResult>(strResult);		Console.Write(error.ErrorMsg());	}	else	{		foreach (TransResult tr in fanyi.trans_result)		{			strFanyi += tr.dst;		}	}	return strFanyi;}static void Main(string[] args){	BaiduTranslator trans = new BaiduTranslator("2015063000000001", "12345678");	// 汉译英	Console.WriteLine("翻译结果:" + trans.Translate("欢迎光临好库编程网okbase.net", "zh", "en"));	// 英译汉	Console.WriteLine("翻译结果:" + trans.Translate("welcome to visit okbase.net", "en", "zh"));}

详细代码请下载项目源码:http://www.okbase.net/file/item/33980

备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘