有道云官方文档

有道云翻译API简介:http://ai.youdao.com/docs/doc-trans-api.s#p01

有道云C#Demo : http://ai.youdao.com/docs/doc-trans-api.s#p08

查询单词信息

在有道云的Demo中,已经很完整的给出了相应的代码~

但是针对是的英-汉等翻译,如何只查询单个单词的详细信息,包含单词的翻译/音标/释义等?例如下图示例信息:

下面修改后封装的查询单词详细信息服务(仅供参考):

 1     /// <summary>
 2     /// 有道词典API
 3     /// </summary>
 4     internal class YouDaoApiService
 5     {
 6         const string AppKey = "131b76a4ee1ecd13";//AppKey和AppSecret是本人@Winter申请的账号,仅供测试使用
 7         const string LangEn = "en";
 8         const string AppSecret = "KX9hLrgSMhfKkvIqS6nhwtwMcRymJqEA";
 9
10         public static async Task<YouDaoTranslationResponse> GetTranslatioAsync(string queryText, string from = LangEn, string to = LangEn)
11         {
12             var requestUrl = GetRequestUrl(queryText, from, to);
13
14             WebRequest translationWebRequest = WebRequest.Create(requestUrl);
15
16             var response = await translationWebRequest.GetResponseAsync();
17
18             using (Stream stream = response.GetResponseStream())
19             {
20                 using (StreamReader reader = new StreamReader(stream ?? throw new InvalidOperationException("有道Api查询出错!"), Encoding.GetEncoding("utf-8")))
21                 {
22                     string result = reader.ReadToEnd();
23                     var youDaoTranslationResponse = JsonConvert.DeserializeObject<YouDaoTranslationResponse>(result);
24
25                     return youDaoTranslationResponse;
26                 }
27             }
28         }
29
30         private static string GetRequestUrl(string queryText, string from, string to)
31         {
32             string salt = DateTime.Now.Millisecond.ToString();
33
34             MD5 md5 = new MD5CryptoServiceProvider();
35             string md5Str = AppKey + queryText + salt + AppSecret;
36             byte[] output = md5.ComputeHash(Encoding.UTF8.GetBytes(md5Str));
37             string sign = BitConverter.ToString(output).Replace("-", "");
38
39             var requestUrl = string.Format(
40                 "http://openapi.youdao.com/api?appKey={0}&q={1}&from={2}&to={3}&sign={4}&salt={5}",
41                 AppKey,
42                 HttpUtility.UrlDecode(queryText, System.Text.Encoding.GetEncoding("UTF-8")),
43                 from, to, sign, salt);
44
45             return requestUrl;
46         }
47     }

序列化解析的数据类:

 1     [DataContract]
 2     public class YouDaoTranslationResponse
 3     {
 4         [DataMember(Name = "errorCode")]
 5         public string ErrorCode { get; set; }
 6
 7         [DataMember(Name = "query")]
 8         public string QueryText { get; set; }
 9
10         [DataMember(Name = "speakUrl")]
11         public string InputSpeakUrl { get; set; }
12
13         [DataMember(Name = "tSpeakUrl")]
14         public string TranslationSpeakUrl { get; set; }
15
16         /// <summary>
17         /// 首选翻译
18         /// </summary>
19         [DataMember(Name = "translation")]
20         public List<string> FirstTranslation { get; set; }
21
22         /// <summary>
23         /// 基本释义
24         /// </summary>
25         [DataMember(Name = "basic")]
26         public TranslationBasicData BasicTranslation { get; set; }
27
28         ///// <summary>
29         ///// 网络释义,该结果不一定存在,暂时不使用
30         ///// </summary>
31         //[DataMember(Name = "web")]
32         //public TranslationWebData WebTranslation { get; set; }
33     }
34
35     /// <summary>
36     /// 基本释义
37     /// </summary>
38     [DataContract]
39     public class TranslationBasicData
40     {
41         [DataMember(Name = "phonetic")]
42         public string Phonetic { get; set; }
43
44         /// <summary>
45         /// 英式发音
46         /// </summary>
47         [DataMember(Name = "uk-phonetic")]
48         public string UkPhonetic { get; set; }
49
50         /// <summary>
51         /// 美式发音
52         /// </summary>
53         [DataMember(Name = "us-phonetic")]
54         public string UsPhonetic { get; set; }
55
56         /// <summary>
57         /// 翻译
58         /// </summary>
59         [DataMember(Name = "explains")]
60         public List<string> Explains { get; set; }
61     }
62
63     /// <summary>
64     /// 网络释义
65     /// </summary>
66     [DataContract]
67     public class TranslationWebData
68     {
69         [DataMember(Name = "key")]
70         public string Key { get; set; }
71
72         [DataMember(Name = "value")]
73         public List<string> Explains { get; set; }
74     }

View Code

作者:唐宋元明清2188
出处:http://www.cnblogs.com/kybs0/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。

C# 有道API翻译 查询单词详细信息相关推荐

  1. Vin码查询车辆详细信息

    本文仅供学习交流使用,如侵立删!demo下载见文末 Vin码查询车辆详细信息 www.y-jiema.com 根据VIN码查询车辆详细信息 事例VIN码:LGWEF4A52EF204381 车型数据库 ...

  2. 淘宝/天猫API ,获取sku详细信息 OneBound数据

    item_sku-获取sku详细信息 公共参数 请求地址: https://console.open.onebound.cn/console/?i=Anzexi 名称 类型 必须 描述 key Str ...

  3. 如何使用快递鸟API接口查询物流轨迹信息?

    近年来,我国电商产业发展迅速,数据显示,2010-2019年,我国电子商务交易规模从4.55万亿元增长至了34.81万亿元,年均复合增速达25%.在电子商务蓬勃发展的态势下,我国电商物流行业也迎来了广 ...

  4. 免费字典api ,查询汉字完整信息

    最大最全的新华汉语词典,字典api根据接口列表返回的汉字id,查询汉字完整信息. 接口名称:字典api 接口平台:第三方api 接口地址:http://v.juhe.cn/xhzd/queryid 支 ...

  5. MySQL查询字段详细信息

    问题 我们都知道在建表的时候定义字段列名.数据类型.长度等信息,但是却无法保存复制,那么如何查出所有字段信息并且可以复制呢? 首先,数据库里面有个叫INFORMATION_SCHEMA的数据库,里面提 ...

  6. jenkins pipeline api获取stage的详细信息_Jenkins + Docker 助力 Serverless 应用构建与部署...

    本文来源: ServerlessLife 公众号 近日,使用 Serverless 开发了一个应用.其中 CI/CD,是需要考虑的一个问题.这里用到了 Jenkins 和 Docker.并且 Jenk ...

  7. 淘宝商品详情接口,淘宝详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情,淘宝APP详情

    一.接口参数说明: 提取淘宝商品详情页各项数据,包含skuid.价格.收藏数.加购数.月销售量.主图.标题.详情页图片,点击获取请求key和secret 二.建议使用场景 1.商品销售情况分析,根据销 ...

  8. 拼多多商品详情接口,拼多多详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情,拼多多APP详情

    一.接口参数说明: 提取拼多多商品详情页各项数据,包含skuid.价格.收藏数.加购数.月销售量.主图.标题.详情页图片等参数,接口对接希望能够帮助到有需要的朋友,具体参数对接如下: 1.公共参数 名 ...

  9. 宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情,淘宝APP详情

    在技术交流群,大家有探讨稳定获取淘宝商品主图.价格.标题,及sku的完整解决方案.这个引起了我技术挑战的兴趣.目前,自己做了压测,QPS高.出滑块概率极低,API整体稳定,可满足业务场景的性能需求. ...

最新文章

  1. Asp.net实现直接在浏览器预览Word、Excel、PDF、Txt文件(附源码)
  2. 模拟实现智能指针auto_ptr,scoped_ptr,shared_ptr
  3. python【力扣LeetCode算法题库】42-接雨水(双指针法)
  4. 小时级部署,客户数上千,神策数据的私有化部署靠什么取胜?
  5. 两台服务器实现会话共享
  6. devserver配置_03-零基础学webpack4.0之html相关配置
  7. w3c的ajax操作函数,关于ajax的使用方法_例题、ajax的数据处理
  8. RawCode-本身就是实验性的8位类型
  9. win7中输入文件夹首字母跳到相应的文件或者文件夹,却在搜索栏出现输入的字母...
  10. e300氛围灯哪里调节_保时捷macan内饰改装升级32色呼吸氛围灯
  11. div+css布局与seo的关系
  12. ELK日志分析系统部署
  13. 教你如何在Linux中通过expect工具实现脚本的自动交互
  14. React自定义视频全屏按钮
  15. 阿里云设置DDNS(动态域名解析)
  16. 2020年测试面试经历以及面试题大全
  17. A1、A2、A3、A4纸都是多大尺寸
  18. 笔记本电脑连接无线网卡如何开热点
  19. 数据库MySQL错误2058_SQLyog连接MySQL8.0报2058错误的完美解决方法
  20. yum完全配置及createrepo详解

热门文章

  1. 新构造运动名词解释_构造运动与地质构造(教材第八章)_普通地质学矿物
  2. 安卓模拟器 arm linux,让x86的android模拟器能模拟arm架构系统
  3. 使用 Windows PowerShell 构建 WPF 应用程序的奥秘
  4. 2D metric和3D mesh的静态metric
  5. 上海海事大学计算机考研资料汇总
  6. 微PE装Win10详细教程:UEFI+GPT方式
  7. TD-问题解答(四)
  8. lua移植到STM32F4全过程
  9. 无法定位程序输入点的一种可能
  10. VMware vSphere Replication 8.5部署及使用教程