5.参考技术文档和 Demo 编写代码。
https://fanyi-api.baidu.com/api/trans/vip/translate输入参数
2.对字符串 1 做 MD5 ,得到 32 位小写的 sign(注意一定转小写)。
4.在生成签名后,发送 HTTP 请求时,如果将 query 拼接在URL上,需要对 query 做 URL encode。
using System; using System.Net.Http; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; using System.Web; class Program { static async Task Main(string[] args) { while (true) { var originalText = Console.ReadLine(); await Translate(originalText); } } static async Task Translate(string originalText) { string APP_ID = "*************";//您的APPID string SecretKey = "****************";//您的密钥 Random random = new Random(); // 堆代码 duidaima.com string salt = random.Next(10000, 99999).ToString(); // appid + q + salt + 密钥的MD5值 string sign = MD5Encrypt(APP_ID + originalText + salt + SecretKey); // 将输入的字符串进行URL编码并构造HTTP请求URL string url = $"https://fanyi-api.baidu.com/api/trans/vip/translate?" + $"q={HttpUtility.UrlEncode(originalText)}" + $"&from=en" + $"&to=zh" + $"&appid={APP_ID}" + $"&salt={salt}" + $"&sign={sign}"; try { using (HttpClient client = new HttpClient()) { // 发送GET请求并获取响应内容 HttpResponseMessage response = await client.GetAsync(url); string responseBody = await response.Content.ReadAsStringAsync(); // 解析响应JSON并输出翻译结果 dynamic result = Newtonsoft.Json.JsonConvert.DeserializeObject(responseBody); Console.WriteLine($"{originalText} 的中文翻译为:{result.trans_result[0].dst}"); } } catch (HttpRequestException e) { Console.WriteLine($"发生HTTP请求错误: {e.Message}"); } } public static string MD5Encrypt(string input) { byte[] inputBytes = Encoding.UTF8.GetBytes(input); using (MD5 md5 = MD5.Create()) { byte[] hashBytes = md5.ComputeHash(inputBytes); return BitConverter.ToString(hashBytes).Replace("-", "").ToLower(); } } }示例图: