本文实例讲述了Asp .网调用百度翻译的方法。分享给大家供大家参考。具体分析如下:
Asp .网调用百度翻译,如下图所示:
超文本标记语言代码如下:
复制代码代码如下:%@页面语言=' c# ' AutoEventWireup=' true ' CodeFile=' Baidu。aspx。cs“Inherits=”樊沂_百度' %!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN ' ' http://www .w3。org/TR/XHTML 1/DTD/XHTML 1-Transitional。DTD ' html xmlns=' http://www .w3。org/1999/XHTML ' head runat=' server ' title OA翻译/标题/标题正文表单ID=' form 1 ' runat=' server ' div ASP : textbox ID=' source word ' runat=' server ' Columns=' 50 ' Rows=' 15 ' style=' width :100%;'文本模式=' MultiLine '/AsP : TextBox br/源语言:asp3360 dropdownlist ID=' ddlFrom ' runat=' server ' asp3360 istitem Value=' auto '自动检测/asp3360 istitem asp: istitem Value=' zh '中文/asp3360 istitem asp: istitem Value=' en '英文/asp3360 istitem asp: istitem Value=' jp '日文/ASP 3360 list item/ASP 3360 dropdownlist目标语言:asp3360 dropdownlist ID=' ddlTo ' runat=' server ' asp3360 istitem Value=' auto '自动检测/asp3360 istitem asp: istitem Value=' zh '中文/asp3360 istitem asp: istitem值=' en '英文/asp3360 istitem asp: istitem Value=' jp '日文/ASP 3360 list item/ASP : dropdownlist ASP :按钮ID=' Translate ' runat=' server ' Text='翻译onclick=' Translate _ Click '/br/ASP : textbox ID=' result text ' runat=' server ' TextMode=' MultiLine ' Rows=' 15 ' Columns=' 50 ' style=' width :100%; /AsP : TextBox/div/form/body/html
C#代码如下:
复制代码代码如下:使用系统;使用系统。集合。通用;使用系统IO;使用系统。净值;使用系统。运行时。序列化;使用系统。运行时。序列化。Json使用系统。文字;使用系统网络.公共偏类樊沂_百度:系统网络。ui。页面{字符串URL=@ ' http://打开API。百度。com/public/2.0/BMT/translate ';字符串requestDetail='client_id=申请的' ID ';受保护的无效页面_加载(对象发送方,EventArgs e) { } [DataContract]公共类AdmAccessToken { [DataMember]公共字符串来自{获取设置;}[数据成员]要{获取设置;}[数据成员]公共字符串错误_代码{获取设置;}[数据成员]公共字符串错误_ msg { get设置;}[数据成员]公共字符串查询{获取设置;}[DataMember]public listokenresult trans _ result { get;设置;} } [DataContract]公共类标记结果{ [DataMember]公共字符串src { get设置;}[数据成员]公共字符串dst { get设置;} } //百度翻译返回数据结构//{///'从: 'en ',//'到: 'zh ',//' trans _ result ' :[//{//' src ' : ' today ',//'dst': '今天//},/{////' src ' : '明天,//'dst': '明天//} //],//'error_code': '52001 ',//'error_msg': 'TIMEOUT ',/' query ' : ' he ' s '////}///summary///采用邮政方式提交数据////summary////param name=' datamarkaccessori '目标网址/param///param name='请求详细信息'参数字符串/param///returns/returns private AdmAccessToken http set(字符串数据市场访问Uri,字符串请求详细信息){//准备OAuth请求WebRequest=WebRequest .创建(DataMarketAccessuri);网络请求.内容类型=' application/x-www-form-URL编码';网络请求.方法=' POST字节[]字节=编码. ASCII。GetBytes(请求详细信息);网络请求.ContentLength=字节。长度;使用(流输出流=网络请求getrequest stream()){输出流.写入(字节,0,字节。长度);}使用(网络响应=网络请求.GetResponse()){ DataContractJsonSerializer序列化程序=new DataContractJsonSerializer(类型为(AdmAccessToken));//从数据流中获取反序列化的对象AdmAccessToken=(AdmAccessToken)序列化程序ReadObject(网络响应. GetResponsesStream());返回令牌;} }受保护的void Translate_Click(对象发送者,事件参数e) {结果文本.Text=if (sourceWord .文字。Trim()!=' '){ string request str=request detail ' from=' ddlFrom .SelectedValue 'to=' ddlTo .SelectedValue ' q=' HttpUtility .UrlEncode(sourceWord .文本);AdmAccessToken token=Http set(URL,RequestStr);if (token.error_code!=null) {结果文本.text=token . error _ msg } else { int n=token . trans _ result .计数;for(int I=0;I n;I){ 0结果文本Text=token.trans_result[i].dst (i n-1? n ' : ' ');} } } else { resultText .文本='请输入要翻译的内容;} } }
希望本文所述对大家的C#程序设计有所帮助。