使用BO API开发单词查询小软件_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 使用BO API开发单词查询小软件

使用BO API开发单词查询小软件

 2015/4/11 17:48:57  暮雨冰蓝  程序员俱乐部  我要评论(0)
  • 摘要:BOAPI是一款免费的数据服务API(http://www.boapi.net/),其单词查询接口http://service.boapi.net/EnWord/EnWord.ashx?key=AppKey&type=w&word=good,其中AppKey是申请的key,word是查询的单词。详细文档查看http://www.boapi.net/enword.htm。开发语言:C#(wpf)工具:VS2012关键代码1privatevoidbtnSearch_Click
  • 标签:API 使用 开发 单词 软件

BO API是一款免费的数据服务API(http://www.boapi.net/),其单词查询接口http://service.boapi.net/EnWord/EnWord.ashx?key=AppKey&type=w&word=good,其中AppKey是申请的key,word是查询的单词。详细文档查看http://www.boapi.net/enword.htm。

开发语言:C#(wpf)

工具:VS2012

关键代码

 1 private void btnSearch_Click(object sender, RoutedEventArgs e)
 2 {
 3       string word = tbKey.Text.Trim();
 4       if (word == "")
 5          return;
 6       try
 7       {
 8           WebClient wc = new WebClient();
 9           wc.Encoding = System.Text.Encoding.UTF8;
10           string json = wc.DownloadString("http://service.boapi.net/EnWord/EnWord.ashx?appkey=298fc40c3be17b1b94e2f&word=" + word);
11           wc.Dispose();
12           if (!string.IsNullOrEmpty(json))
13           {
14                JToken jk = (JToken)JsonConvert.DeserializeObject(json);
15                if (jk != null)
16                {
17                    tbWord.Text = word;
18                    tbPhonetic.Text = "[" + jk["mark"].ToString() + "]";
19                    tbTrans.Text = jk["explain"].ToString();
20                    voice.Visibility = Visibility.Visible;
21                    voice.Tag = "http://www.boapi.net/basicdata/voice/" + word.Substring(0, 1) + "/" + jk["voice"].ToString();
22                    if (jk["es"] != null)
23                    {
24                        if (jk["es"].Count() > 0)
25                           tbSentence.Text = jk["es"][0]["sentence"].ToString() + " " + jk["es"][0]["translate"].ToString();
26                        if (jk["es"].Count() > 1)
27                            tbSentence.Text += Environment.NewLine + jk["es"][1]["sentence"].ToString() + " " + jk["es"][1]["translate"].ToString();
28                        //if (jk["es"].Count() > 2)
29                        //    tbSentence.Text += Environment.NewLine + jk["es"][2]["sentence"].ToString() + " " + jk["es"][2]["translate"].ToString();
30                    }
31                }
32            }
33       }
34       catch
35       { }
36 }

代码解析

WebClient提供资源接收数据公共方法,我们就可以从远程url地址下载数据(访问服务)。
JsonConvert.DeserializeObject将string反序列化为json对象
voice是一个播放图标,这里将单词的音频文件地址存储到voice的Tag属性中

注意:

单词查询返回的json中,Voice代表单词语音文件名。访问语音文件的url为:http://www.boapi.net/basicdata/voice/单词文件名

如:查询good单词返回的json中"voice":"good.wav",则good单词的url为http://www.boapi.net/basicdata/voice/good.wav

源码下载:单词查询软件源码

发表评论
用户名: 匿名