本文示範在 ASP.NET Web Forms 中呼叫百度翻譯開放 API,建立一個具備來源/目標語言選擇、文字輸入與翻譯結果顯示的完整翻譯頁面。
包含多行文字框、語言下拉選單、翻譯按鈕與結果顯示區:
<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%;" />
核心步驟:
client_id(需至百度開發者平台申請)AdmAccessToken, TokenResult)HttpWebRequest 發送 POST 請求,含 from, to, q 參數DataContractJsonSerializer 反序列化回應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));
}
}

Web.config 加密區段或 Azure Key Vault。