金山詞霸官方未提供公開免費 API,且網頁端加密簽名複雜、反爬蟲嚴格。**強烈建議改用有道、百度、騰訊等提供正規免費額度的翻譯開放平台**,穩定且合規。
App Key (Application ID) 與 App Secret (密鑰)sign = SHA256(AppKey + truncate(q) + salt + curtime + AppSecret)
// truncate(q): q 長度 ≤ 20 取全串,否則首 10 + 長度 + 尾 10
// salt: UUID, curtime: Unix 時間戳(秒)
using System;
using System.Net.Http;
using System.Text;
using System.Security.Cryptography;
using System.Web;
using Newtonsoft.Json.Linq;
public class YoudaoTranslator {
private const string AppKey = "你的AppKey";
private const string AppSecret = "你的AppSecret";
private const string ApiUrl = "https://openapi.youdao.com/api";
public static async Task TranslateAsync(string text, string from = "auto", string to = "zh-CHS") {
var salt = Guid.NewGuid().ToString("N");
var curtime = ((DateTimeOffset)DateTime.UtcNow).ToUnixTimeSeconds().ToString();
var input = text.Length <= 20 ? text : text.Substring(0, 10) + text.Length + text.Substring(text.Length - 10);
var signStr = AppKey + input + salt + curtime + AppSecret;
var sign = ComputeSha256Hash(signStr);
var dict = new Dictionary {
["q"] = text, ["from"] = from, ["to"] = to,
["appKey"] = AppKey, ["salt"] = salt, ["sign"] = sign,
["signType"] = "v3", ["curtime"] = curtime
};
using (var client = new HttpClient()) {
var content = new FormUrlEncodedContent(dict);
var resp = await client.PostAsync(ApiUrl, content);
var json = await resp.Content.ReadAsStringAsync();
var jo = JObject.Parse(json);
if (jo["errorCode"].Value() != 0) throw new Exception("翻譯失敗: " + jo["errorCode"]);
return string.Join("\n", jo["translation"].Select(t => t.ToString()));
}
}
private static string ComputeSha256Hash(string raw) {
using (var sha = SHA256.Create()) {
var bytes = Encoding.UTF8.GetBytes(raw);
var hash = sha.ComputeHash(bytes);
return BitConverter.ToString(hash).Replace("-", "").ToLower();
}
}
}
// 調用示例
var result = await YoudaoTranslator.TranslateAsync("hello world");
Console.WriteLine(result); // 輸出: 你好世界
tSpeakUrl、speakUrl 可直接播放 MP3basic 節點含音標、解釋、例句q 參數換行分隔多詞,單次請求最多 5000 字符需處理:動態加密參數 sign、ts、Cookie 管理、User-Agent 偽裝、IP 限流、HTML 解析脆弱性。維護成本極高,隨時失效。
**棄用網頁抓取,擁抱官方 API**。有道/百度/騰訊/阿里雲均提供 C# SDK 或 REST 介面,幾分鐘即可接入,穩定、合法、免維護。