• 日常API之百度翻译


    百度翻译是什么,可以吃吗?相信很多人都熟悉,它是我们生活中必不可少的一只东东。

    但是,百度翻译开发平台只有每月只能翻译200万个字符,多出的要按照49.00/百万字符来算。对于我酱紫的乞丐程序员来说,其实已经是足足的了。

    接下来进入正题,分为2个部分讲,一是免费的百度翻译,二是收费的百度翻译(此处应该不会有人看)

    首先讲讲免费的吧,这个API呢请求很简单,而且速度快。

    一、免费版(无限制,且速度快)

    先打开一只Cat,啊不,是翻译和Chrome(只要可以抓包的浏览器都可以,此处用Chrome做示例)

    可以从中找到一个名为v2transapi的请求,从中可以看出是以POST方式发送的。

    获取API:

    http://fanyi.baidu.com/v2transapi

    一下使用C#做代码示例:

     1         public static async Task<string> PostWebAsync(string url, string idata)
     2         {
     3             var request = (HttpWebRequest)WebRequest.Create(url);
     4             var data = Encoding.ASCII.GetBytes(idata);
     5             request.Method = "POST";
     6             request.ContentType = "application/x-www-form-urlencoded";
     7             request.ContentLength = data.Length;
     8             using (var stream = await request.GetRequestStreamAsync())
     9             {
    10                 await stream.WriteAsync(data, 0, data.Length);
    11             }
    12 
    13             var response = (HttpWebResponse)await request.GetResponseAsync();
    14 
    15             var r = new StreamReader(response.GetResponseStream());
    16             //    System.Windows.MessageBox.Show(await r.ReadToEndAsync());
    17             return await r.ReadToEndAsync();
    18         }

    我们需要一只发送POST请求的方法,接着使用:

    1 string data = PostWebAsync("http://fanyi.baidu.com/v2transapi","from=auto&to={翻译后的语言}&query={翻译的内容}&transtype=realtime&simple_means_flag=3");

    其中的from和to属性可以参照百度翻译API的代码填写。

    得到数据后,我们需要解析他。

    翻译后的文本位于JSON的:["trans_result"]["data"][0]["dst"]位置处。

    二、收费版(有限制,速度快,开发难度高)

    咳咳,首先你需要注册一只百度账号,到api.fanyi.baidu.com申请服务。

    签名生成方法如下:

    1、将请求参数中的 APPID(appid), 翻译query(q, 注意为UTF-8编码), 随机数(salt), 以及平台分配的密钥(可在管理控制台查看)

    按照 appid+q+salt+密钥 的顺序拼接得到字符串1。

    2、对字符串1做md5,得到32位小写的sign。

     

    奉上C# MD5加密一枚:

     1         public class MD5
     2         {
     3             public static byte[] EncryptToMD5(string str)
     4             {
     5                 MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
     6                 byte[] str1 = System.Text.Encoding.UTF8.GetBytes(str);
     7                 byte[] str2 = md5.ComputeHash(str1, 0, str1.Length);
     8                 md5.Clear();
     9                 (md5 as IDisposable).Dispose();
    10                 return str2;
    11             }
    12             public static string EncryptToMD5string(string str)
    13             {
    14                 byte[] bytHash = EncryptToMD5(str);
    15                 string sTemp = "";
    16                 for (int i = 0; i < bytHash.Length; i++)
    17                 {
    18                     sTemp += bytHash[i].ToString("X").PadLeft(2, '0');
    19                 }
    20                 return sTemp.ToLower();
    21             }
    22         }

    请求地址:

    "http://api.fanyi.baidu.com/api/trans/vip/translate?q=" + q + "&from=" + from + "&to=" + to + "&appid=20151231000008489&salt=2004112629" + "&sign=" + sign

    注意:

    1、请先将需要翻译的文本转换为UTF-8编码

    2、在发送HTTP请求之前需要对各字段做URL encode。

    3、在生成签名拼接 appid+q+salt+密钥 字符串时,q不需要做URL encode,在生成签名之后,发送HTTP请求之前才需要对要发送的待翻译文本字段q做URL encode。

    最后得到一只JSON,正确的翻译后内容位于["trans_result"][0]["dst"]最后进行UFT8解码处理即可。

     

     

    啊喵,本次的教程到这里就结束了哦,下次再见!

  • 相关阅读:
    倾斜摄影技术构建图扑 WebGIS 智慧展馆
    图扑数字孪生空冷机组,助推智慧电厂拥抱“双碳”
    图扑数字孪生数据中心机房,助力产业绿色低碳转型
    图扑软件智慧云展厅,开启数字化展馆新模式
    图扑数字孪生青岛城轨,赋能智慧交通低碳发展
    图扑软件 3D 组态编辑器,低代码零代码构建数字孪生工厂
    图扑智慧城市 | 搭建政务民生可视化管理系统
    当元宇宙碰上图扑国风设计,科技与文化的虚实融合
    图扑数字孪生地铁站,助力智慧出行
    图扑数字孪生智慧加油站,构建安全防护网
  • 原文地址:https://www.cnblogs.com/TwilightLemon/p/7101030.html
Copyright © 2020-2023  润新知