您好,登錄后才能下訂單哦!
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" 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" ></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 = "請輸入要翻譯的內容"; } } }
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。