- Asp.NET调用有道翻译API
-
调用有道API进行翻译,如图:
HTML:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FanYi.aspx.cs" Inherits="FanYi" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><headrunat="server"><title>翻译</title><styletype="text/css">#sourceWord{height: 30px;font-size: 16pt;font-weight: bold;border: 1px green solid;line-height: 30px;}#Translate{font-size: 14pt;margin-left: 10px;}#panel_Dict{margin-top: 15px;}.query{font-size: 16pt;color: Green;font-weight: bold;}.phonetic{color: Gray;font-size: 13pt;}.wordGroup{font-size: 13pt;color: #35a1d4;font-weight: bold;margin-right: 0.5em;margin-top: 10px;margin-bottom: 0px;display: block;}legend{font-size: 12pt;color: Gray;}fieldset{display: inline;padding: 10px;}</style></head><body><formid="form1"runat="server"><div><asp:TextBoxID="sourceWord"runat="server"Style="width: 500px;"TextMode="SingleLine"MaxLength="200"></asp:TextBox><asp:ButtonID="Translate"runat="server"Text="Translate"OnClick="Translate_Click"/><asp:PanelID="panel_Dict"runat="server"><asp:LabelID="lblQuery"runat="server"Text=""CssClass="query"></asp:Label><asp:LabelID="lblPhonetic"runat="server"Text=""CssClass="phonetic"></asp:Label><br/><fieldsetrunat="server"id="fieldset1"><legend>近义词</legend><asp:LabelID="lblExplains"runat="server"Text=""CssClass="wordGroup"></asp:Label></fieldset><br/><fieldsetrunat="server"id="fieldset2"><legend>翻译</legend><asp:LabelID="lblTranslation"runat="server"Text=""></asp:Label></fieldset><br/><fieldsetrunat="server"id="fieldset3"><legend>短语</legend><asp:LabelID="lblWeb"runat="server"Text=""></asp:Label></fieldset><br/></asp:Panel></div></form></body></html>123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147usingSystem;usingSystem.Collections.Generic;usingSystem.Net;usingSystem.Runtime.Serialization;usingSystem.Runtime.Serialization.Json;usingSystem.Web;publicpartialclassFanYi : System.Web.UI.Page{protectedvoidPage_Load(objectsender, EventArgs e){translation();}/// <summary>/// 翻译并显示结果/// </summary>privatevoidtranslation(){lblTranslation.Text ="";lblWeb.Text ="";lblQuery.Text = sourceWord.Text;lblPhonetic.Text ="";lblExplains.Text ="";if(sourceWord.Text.Trim() ==""){return;}translationData data = YouDaoTranslateTool(sourceWord.Text.Trim());if(data.errorCode == 0){if(data.basic !=null){fieldset1.Visible =true;if(data.basic.phonetic !=""){lblPhonetic.Text ="["+ data.basic.phonetic +"]";}for(inti = 0; i < data.basic.explains.Count; i++){lblExplains.Text += data.basic.explains[i] +"<br/>";}}else{fieldset1.Visible =false;}for(inti = 0; i < data.translation.Count; i++){lblTranslation.Text += data.translation[i] +"<br/>";}if(data.web !=null){fieldset3.Visible =true;for(inti = 0; i < data.web.Count; i++){lblWeb.Text +="<span class='wordGroup'>"+ data.web[i].key +"</span>";for(intj = 0; j < data.web[i].value.Count; j++){lblWeb.Text += data.web[i].value[j] + (j == data.web[i].value.Count - 1 ?"":"; ");}lblWeb.Text +="<br/>";}}else{fieldset3.Visible =false;}}}protectedvoidTranslate_Click(objectsender, EventArgs e){}/// <summary>/// 请求Web数据,返回实体类/// </summary>/// <param name="sourceWord">要翻译的内容</param>/// <returns></returns>publictranslationData YouDaoTranslateTool(stringsourceWord){/*调用:<A href="http://fanyi.youdao.com/openapi.do?keyfrom=?&key=?&type=data&doctype=json&version=1.1&q">http://fanyi.youdao.com/openapi.do?keyfrom=?&key=?&type=data&doctype=json&version=1.1&q</A>=中国人*/stringserverUrl =@"http://fanyi.youdao.com/openapi.do?keyfrom=morninglight&key=1612199890&type=data&doctype=json&version=1.1&q="+ HttpUtility.UrlEncode(sourceWord);WebRequest request = WebRequest.Create(serverUrl);WebResponse response = request.GetResponse();DataContractJsonSerializer serializer =newDataContractJsonSerializer(typeof(translationData));return(translationData)serializer.ReadObject(response.GetResponseStream());}#region 翻译结果数据实体类/*json数据格式举例{"errorCode":0"query":"翻译","translation":["translation"], // 有道翻译"basic":{ // 有道词典-基本词典"phonetic":"fān yì","explains":["translate","interpret"]},"web":[ // 有道词典-网络释义{"key":"翻译","value":["translator","translation","translate","Interpreter"]},{...}]}*/[DataContract]publicclasstranslationData{[DataMember]publicinterrorCode {get;set; }[DataMember]publicstringquery {get;set; }[DataMember]publicList<string> translation {get;set; }[DataMember]publictranslationBasic basic {get;set; }[DataMember]publicList<translationWeb> web {get;set; }}[DataContract]publicclasstranslationBasic{[DataMember]publicstringphonetic {get;set; }[DataMember]publicList<string> explains {get;set; }}[DataContract]publicclasstranslationWeb{[DataMember]publicList<string> value {get;set; }[DataMember]publicstringkey {get;set; }}#endregion}
本文介绍了一个使用ASP.NET实现的有道翻译API调用示例,展示了如何通过网页界面输入文字并获取翻译结果,包括基本翻译、词典解释及网络释义等。
1518

被折叠的 条评论
为什么被折叠?



