百度翻译API
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="百度翻译_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /><asp:Literal ID="Literal1" runat="server"></asp:Literal> </div> </form> </body> </html>
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Newtonsoft.Json; using BDTranslate.Models; public partial class 百度翻译_Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } private TranClass tranClass = new TranClass(); protected void Button1_Click(object sender, EventArgs e) { tranClass.From = "zh"; tranClass.To = "en"; WebClient client = new WebClient(); //引用System.Net string fromTranslate = this.TextBox1.Text; //翻译前的内容 if (!string.IsNullOrEmpty(fromTranslate)) { // 拼接appid=2015063000000001+q=apple+salt=1435660288+密钥=12345678 //得到字符串1 =2015063000000001apple143566028812345678 long d = DateTimeToUnixTimestamp(DateTime.Now); string str = "key" + this.TextBox1.Text + d + "密钥"; string md5 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower(); string url = "http://api.fanyi.baidu.com/api/trans/vip/translate?q=" + this.TextBox1.Text + "&from=en&to=zh&appid=key&salt="+d+"&sign=" + md5; var buffer = client.DownloadData(url); string result = Encoding.UTF8.GetString(buffer); StringReader sr = new StringReader(result); JsonTextReader jsonReader = new JsonTextReader(sr); //引用Newtonsoft.Json 自带 JsonSerializer serializer = new JsonSerializer(); var r = serializer.Deserialize<TranClass>(jsonReader); //因为获取后的为json对象 ,实行转换 Literal1.Text = r.Trans_result[0].dst; //dst为翻译后的值 } } /// <summary> /// 日期转换成unix时间戳 /// </summary> /// <param name="dateTime"></param> /// <returns></returns> public static long DateTimeToUnixTimestamp(DateTime dateTime) { var start = new DateTime(1970, 1, 1, 0, 0, 0, dateTime.Kind); return Convert.ToInt64((dateTime - start).TotalSeconds); } } namespace BDTranslate.Models { public class TranClass { public string From { get; set; } public string To { get; set; } public List<Trans_result> Trans_result { get; set; } } public class Trans_result { public string src { get; set; } public string dst { get; set; } } }