首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

ASP.NET 整合百度翻譯 API 完整實作教學

     編輯:ASP.NET 基礎

本文示範在 ASP.NET Web Forms 中呼叫百度翻譯開放 API,建立一個具備來源/目標語言選擇、文字輸入與翻譯結果顯示的完整翻譯頁面。

前端介面 (baidu.aspx)

包含多行文字框、語言下拉選單、翻譯按鈕與結果顯示區:

<asp:TextBox ID="sourceWord" runat="server" TextMode="MultiLine" Rows="15" Columns="50" Style="width:100%;" />
<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: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%;" />

後端邏輯 (baidu.aspx.cs)

核心步驟:

  1. 定義 API 端點與 client_id(需至百度開發者平台申請)
  2. 建立對應 JSON 回應的資料合約類別 (AdmAccessToken, TokenResult)
  3. 使用 HttpWebRequest 發送 POST 請求,含 from, to, q 參數
  4. 以 DataContractJsonSerializer 反序列化回應
  5. 解析 trans_result 陣列顯示翻譯結果,或顯示錯誤訊息
private AdmAccessToken HttpPost(string uri, string requestDetails) {
    var request = (HttpWebRequest)WebRequest.Create(uri);
    request.ContentType = "application/x-www-form-urlencoded";
    request.Method = "POST";
    byte[] bytes = Encoding.ASCII.GetBytes(requestDetails);
    request.ContentLength = bytes.Length;
    using (var stream = request.GetRequestStream()) stream.Write(bytes, 0, bytes.Length);
    using (var response = request.GetResponse())
    using (var stream = response.GetResponseStream()) {
        var serializer = new DataContractJsonSerializer(typeof(AdmAccessToken));
        return (AdmAccessToken)serializer.ReadObject(stream);
    }
}

protected void Translate_Click(object sender, EventArgs e) {
    resultText.Text = "";
    if (string.IsNullOrWhiteSpace(sourceWord.Text)) {
        resultText.Text = "請輸入要翻譯的內容"; return;
    }
    string requestStr = $"{requestDetail}&from={ddlFrom.SelectedValue}&to={ddlTo.SelectedValue}&q={HttpUtility.UrlEncode(sourceWord.Text)}";
    var token = HttpPost(url, requestStr);
    if (!string.IsNullOrEmpty(token.error_code)) {
        resultText.Text = token.error_msg;
    } else {
        resultText.Text = string.Join("\n", token.trans_result.Select(r => r.dst));
    }
}

執行畫面

百度翻譯介面

注意事項

  • 百度翻譯 API v2.0 已停止維護,新專案建議改用百度翻譯開放平台最新版 API (需 AK/SK 驗證)。
  • 生產環境應加入錯誤重試、快取機制與非同步呼叫避免阻塞 UI。
  • 敏感資訊 (client_id) 應存於 Web.config 加密區段或 Azure Key Vault。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved