当前位置: 首页 > 编程笔记 >

Asp.NET调用百度翻译的方法

柯易安
2023-03-14
本文向大家介绍Asp.NET调用百度翻译的方法,包括了Asp.NET调用百度翻译的方法的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了Asp.NET调用百度翻译的方法。分享给大家供大家参考。具体分析如下:

Asp.NET调用百度翻译,如下图所示:

HTML代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="baidu.aspx.cs" Inherits="FanYi_baidu" %>  

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

<html xmlns="http://www.w3.org/1999/xhtml">  

<head runat="server">  

    <title>OA翻译</title>  

</head>  

<body>  

    <form id="form1" runat="server">  

    <div>  

        <asp:TextBox ID="sourceWord" runat="server" Columns="50" Rows="15" style="width:100%;"  

            TextMode="MultiLine"></asp:TextBox>  

        <br />  

        源语言:<asp:DropDownList ID="ddlFrom" runat="server">  

            <asp:ListItem Value="auto">自动检测</asp:ListItem>  

            <asp:ListItem Value="zh">中文</asp:ListItem>  

            <asp:ListItem Value="en">英文</asp:ListItem>  

            <asp:ListItem Value="jp">日文</asp:ListItem>  

        </asp:DropDownList>  

        目标语言:<asp:DropDownList ID="ddlTo" runat="server">  

            <asp:ListItem Value="auto">自动检测</asp:ListItem>  

            <asp:ListItem Value="zh">中文</asp:ListItem>  

            <asp:ListItem Value="en">英文</asp:ListItem>  

            <asp:ListItem Value="jp">日文</asp:ListItem>  

        </asp:DropDownList>  

        <asp:Button ID="Translate"  

            runat="server" Text="翻译" onclick="Translate_Click" />  

        <br />  

        <asp:TextBox ID="resultText" runat="server" TextMode="MultiLine" Rows="15" Columns="50" style="width:100%;"></asp:TextBox>  

    </div>  

    </form>  

</body>  

</html>

C#代码如下:

using System;  

using System.Collections.Generic;  

using System.IO;  

using System.Net;  

using System.Runtime.Serialization;  

using System.Runtime.Serialization.Json;  

using System.Text;  

using System.Web;  

  

public partial class FanYi_baidu : System.Web.UI.Page  

{  

    string url = @"http://openapi.baidu.com/public/2.0/bmt/translate";  

    string requestDetail = "client_id=申请的ID";  

    protected void Page_Load(object sender, EventArgs e)  

    {  

  

    }  

    [DataContract]  

    public class AdmAccessToken  

    {  

        [DataMember]  

        public string from { get; set; }  

        [DataMember]  

        public string to { get; set; }  

        [DataMember]  

        public string error_code { get; set; }  

        [DataMember]  

        public string error_msg { get; set; }  

        [DataMember]  

        public string query { get; set; }  

        [DataMember]  

        public List<TokenResult> trans_result { get; set; }  

    }  

  

    [DataContract]  

    public class TokenResult  

    {  

        [DataMember]  

        public string src { get; set; }  

        [DataMember]  

        public string dst { get; set; }  

    }  

  

    //百度翻译返回数据结构  

    //{  

    //"from": "en",  

    //"to": "zh",  

    //"trans_result": [  

    //    {  

    //        "src": "today",  

    //        "dst": "今天"  

    //    },  

    //    {  

    //        "src": "tomorrow",  

    //        "dst": "明天"  

    //    }  

    //],  

    //"error_code": "52001",  

    //"error_msg": "TIMEOUT",  

    //"query": "he's"  

    //}  

  

    /// <summary>  

    /// 采用Post方式提交数据  

    /// </summary>  

    /// <param name="DatamarketAccessUri">目标网址</param>  

    /// <param name="requestDetails">参数字符串</param>  

    /// <returns></returns>  

    private AdmAccessToken HttpPost(string DatamarketAccessUri, string requestDetails)  

    {  

        //Prepare OAuth request   

        WebRequest webRequest = WebRequest.Create(DatamarketAccessUri);  

        webRequest.ContentType = "application/x-www-form-urlencoded";  

        webRequest.Method = "POST";  

        byte[] bytes = Encoding.ASCII.GetBytes(requestDetails);  

        webRequest.ContentLength = bytes.Length;  

        using (Stream outputStream = webRequest.GetRequestStream())  

        {  

            outputStream.Write(bytes, 0, bytes.Length);  

        }  

        using (WebResponse webResponse = webRequest.GetResponse())  

        {  

            DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(AdmAccessToken));  

            //Get deserialized object from JSON stream  

            AdmAccessToken token = (AdmAccessToken)serializer.ReadObject(webResponse.GetResponseStream());  

            return token;  

        }  

    }  

  

    protected void Translate_Click(object sender, EventArgs e)  

    {  

        resultText.Text = "";  

        if (sourceWord.Text.Trim() != "")  

        {  

            string requestStr = requestDetail + "&from=" + ddlFrom.SelectedValue  

                + "&to=" + ddlTo.SelectedValue  

                + "&q=" + HttpUtility.UrlEncode(sourceWord.Text);  

  

            AdmAccessToken token = HttpPost(url, requestStr);  

            if (token.error_code != null)  

            {  

                resultText.Text = token.error_msg;  

            }  

            else  

            {  

                int n = token.trans_result.Count;  

                for (int i = 0; i < n; i++)  

                {  

                    resultText.Text += token.trans_result[i].dst + (i < n-1 ? "\n" : "");  

                }  

            }  

        }  

        else  

        {  

            resultText.Text = "请输入要翻译的内容";  

        }  

    }  

}

希望本文所述对大家的C#程序设计有所帮助。

 类似资料:
  • 本文向大家介绍ThinkPHP调用百度翻译类实现在线翻译,包括了ThinkPHP调用百度翻译类实现在线翻译的使用技巧和注意事项,需要的朋友参考一下 要实现ThinkPHP在线翻译功能,需要先在百度开发者中心注册一个API key,具体实现代码如下: action代码部分: html代码部分:

  • 本文向大家介绍django项目简单调取百度翻译接口的方法,包括了django项目简单调取百度翻译接口的方法的使用技巧和注意事项,需要的朋友参考一下 1,建路由; 2,写方法; 3,前端页面;form表单提交; 4,触发提交事件和返回结果的的jquery; 5,页面效果; 总结 以上所述是小编给大家介绍的django项目简单调取百度翻译接口的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小

  • 本文向大家介绍用python实现百度翻译的示例代码,包括了用python实现百度翻译的示例代码的使用技巧和注意事项,需要的朋友参考一下 用python实现百度翻译,分享给大家,具体如下: 首先,需要简单的了解一下爬虫,尽可能简单快速的上手,其次,需要了解的是百度的API的接口,搞定这个之后,最后,按照官方给出的demo,然后写自己的一个小程序 打开浏览器 F12 打开百度翻译网页源代码: 我们可以

  • 简介 深度翻译(英文名:Deepin Translator)是deepin 团队为开发的一款强大的翻译软件。 深度翻译提供数十种语言互译,支持划出和取词,同时还支持图片取词,简洁的外观和操作,为您提供从所未有的翻译体验。 深度翻译是一款自由软件,遵循自由软件基金会发布的 GNU 通用公共许可证第三版。 目前最新版本为1.0版本。 特性 *多种语言互翻,支持有道、Google、星际译王 *离线可以使

  • 本文向大家介绍php有道翻译api调用方法实例,包括了php有道翻译api调用方法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php有道翻译api调用方法,这里我们利用了file_get_contents函数直接读取由api返回的数据进行处理,分享给大家供大家参考。具体分析如下: 调用之前我们需申请一个有道翻译API数据接口的key,地址如: 方法说明,数据接口: 参数说明: ty

  • 本文向大家介绍javascript实现 百度翻译 可折叠的分享按钮列表,包括了javascript实现 百度翻译 可折叠的分享按钮列表的使用技巧和注意事项,需要的朋友参考一下 自从开始学习前端后,平时看到浏览器上的一些出彩的控件都想自己实现一下O(∩_∩)O,不知大家有没有这个感觉。接下来就和大家分享一个,原控件来自百度翻译右下方,大家仔细找找应该能找到,如图所示: 感觉蛮有意思的,实现起来也不复