金山词霸每日一句开放平台 .NET demo
先附上地址:http://open.iciba.com/?c=api
小金山提供了2种获取数据的方式
1、 通过填入自己的网站名称、网址、邮箱地址 来生成一段javascript脚本,直接将生成的代码拷贝至自己的网页去就OK了(真是轻松加愉快(⊙o⊙));
比较简单,直接演示了 红框内是效果图:
ps:貌似以上三项内容可以随便填写没有影响
2、 返回JSON数据的url地址: http://open.iciba.com/dsapi
文档说明:http://open.iciba.com/index.php?c=wiki
传入参数:
file //数据格式,默认(json),可选xml
date //标准化日期格式 如:2013-05-06, 如:http://open.iciba.com/dsapi/?date=2013-05-03
如果 date为空 则默认取当日的,当日为空 取前一日的
type(可选) // last 和 next 你懂的,以date日期为准的,last返回前一天的,next返回后一天的
JSON 字段解释
{
'sid':'' #每日一句ID
'tts': '' #音频地址
'content':'' #英文内容
'note': '' #中文内容
'love': '' #每日一句喜欢个数
'translation':'' #词霸小编
'picture': '' #图片地址
'picture2': '' #大图片地址
'caption':'' #标题
'dateline':'' #时间
's_pv':'' #浏览数
'sp_pv':'' #语音评测浏览数
'tags':'' #相关标签
'fenxiang_img':'' #合成图片,建议分享微博用的
}
我采用了第二种返回Json数据的url后组织html来显示的方式;
(1)后台利用HttpWebRequest请求url 通过JavaScriptSerializer 将数据反序列化到一个属性与json数据字段相对应的类中;(据说Json.net性能更好)
public DailyEnglish daily = null; // 用于aspx页面
// 按钮点击事件
protected void btnFetch_Click(object sender, EventArgs e)
{
try
{
HttpWebRequest request = WebRequest.Create("http://open.iciba.com/dsapi/") as HttpWebRequest;
request.Method = "GET"; HttpWebResponse response = request.GetResponse() as HttpWebResponse;
Stream stream = response.GetResponseStream();
StreamReader sr = new StreamReader(stream);
//反序列化
JavaScriptSerializer js = new JavaScriptSerializer();
var sentence = js.Deserialize<DailyEnglish>(sr.ReadToEnd());
daily = sentence; }
catch(Exception ex)
{
Response.Write("Sorry, there seems to be some error \n "+ex.Message);
} } }
// 解析json用到的类,没有用到的字段我就注释掉了
public class DailyEnglish
{ public string tts; //Text to Speech 文本朗读 地址
public string content; //英文
public string note; // 中文
public string translation;
public string picture; // 小图
public string picture2; //大图
public string dateline; //时间
// public string sid;
// public string love; // 每日一句喜欢个数
// public string caption;
// public string s_pv; // 浏览数
// public string sp_pv; // 语音测评浏览数
// public string fenxiang_img; // 合成的图片 分享微博用的 }
(2)接着在aspx组织html ,页面代码就不展示了嘛,我看看如何上传再附上链接
这个步骤收获了个css知识 :
1. 兼容ie的透明: opacity: 0.5; filter: alpha(opacity=50);
2. 用margin-top : 负值 来替代 position:absolute;
3. 坑爹的IE , width居然包括padding 和border的宽度(不包括margin,这厮对盒模型的解释好奇葩): 解决方法将正常的width加上!important,再接上IE的width如:
width: 520px!important; width:532px;padding: 10px; ( IE_width 放在后面)
4. IE上 float:left的元素宽度100%了,需要加上宽度! float:left;width:200px
下图的日期就是用以上2个css知识点来实现的(今天的图片居然是可爱的小黄人而且还这么励志!!!)
金山词霸每日一句开放平台 .NET demo的更多相关文章
- 迅雷云加速开放平台c#demo
迅雷云加速开放平台c#demo.很多人很遇到下载文件的问题.这个例子是调用迅雷云加速开放平台的dll,进行下载,速度很快,下载过程中可以获取到很全的下载信息,比如下载速度,进度,完成状态等. 例子中带 ...
- Python爬取金山词霸每日一句,存储到MySQL中
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/7/3 20:25 # @Author : baoshan # @Site : ...
- Android 图文数据JSON解析,金山词霸每日一句API的调用
金山词霸开发的免费API http://open.iciba.com/dsapi/ 数据格式为 {","name":"\u7535\u5f71\u7ecf\u5 ...
- php随机获取金山词霸每日一句
header('Content-Type:text/html; charset=utf-8'); $nowyear=date("Y"); $nowmouth = date('m') ...
- 钉钉开放平台demo调试异常问题解决:hostname in certificate didn't match
今天研究钉钉的开放平台,结果一个demo整了半天,这帮助系统写的也很难懂.遇到两个问题: 1.首先是执行demo时报unable to find valid certification path to ...
- 微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo
原文:微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo 教程导航: 微信开放平台 公众号第三方平台开发 教程一 平台介绍 微信开放平台 公众号第三方平台开发 教程二 创建 ...
- Python 教你自动发微博,每日一句英语
作者:周萝卜 最近在研究用 Python 来制作各个类别的机器人,今天先来分享一个自动发布新浪微博的机器人. 基本思路 其实要实现一个简单的自动发布微博机器人还是不难的,只需要每天按时找好要发布的素材 ...
- 如何使用OLAMI自然语言理解开放平台API制作自己的智能对话助手小程序
我们经常在电影中看到机器和人对答如流,随着越来越多自然语言开放平台的出现,IT爱好者制作一个自己的APP或者小玩具等逐渐可以变为现实. 自然语言对话即你的APP或者你制作的工具.机器人等能够对用户输入 ...
- Python实现将爱词霸每日一句定时推送至微信
前言 前几天在网上看到一篇文章<教你用微信每天给女票说晚安>,感觉很神奇的样子,随后研究了一下,构思的确是巧妙.好,那就开始动工吧!服务器有了,Python环境有了,IDE打开了...然而 ...
随机推荐
- Xfce 快捷键
1:显示桌面 修改文件:~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xmlvim命令:%s/"&l ...
- ibatis配置多表关联(一对一、一对多、多对多)
iBatis的多表关联. ibatis的表关联,和数据库语句无关,是在程序中,把若干语句的结果关联到一起.这种关联形式,虽然在大数据量时是很奢侈的行为,但是看起来很干净,用起来也很方便. 这里用表lo ...
- Redis附加功能之Redis事务
一.事务 Redis 的事务功能允许用户将多个命令包裹起来,然后一次性地.按顺序地执行被包裹的所有命令.在事务执行的过程中,服务器不会中断事务而改去执行其他命令请求,只有在事务包裹的所有命令都被执行完 ...
- Android 基础控件 TextView
一TextView介绍: TextView是UI最基本的组件,使用TextView可以显示丰富的文本信息.设置添加TextView最常见的方法就是在xml中添加TextView元素,并指定属性.Tex ...
- 下一代大数据系统和4S标准
大数据行业发展到今天,它创造的价值和带来的社会效应,大家已经看得很明白,同时很多问题和不足也暴露出来,特别是hadoop能够提供的数据处理能力,现在已经挖掘到极限,但是现在各行业对数据的存储和计算需求 ...
- opencv学习——兴趣区选取
在OpenCV中,普遍支持ROI和widthStep,函数的操作被限制于感兴趣的区域,要设置或者取消ROI,就要使用cvSetImageROI()和cvResetImage()函数.如过想设置ROI, ...
- javascript设计模式-工厂模式
简单工厂模式:使用一个类来生成实例. 复杂工厂模式:使用子类来决定一个成员变量应该是哪个具体的类的实例. 简单工厂模式是由一个方法来决定到底要创建哪个类的实例, 而这些实例经常都拥有相同的接口.通过工 ...
- MFC常见问题解惑
MFC类的分类 1 Root: CObject : CObject2 Application Architecture Classes: CWinApp/CFrameWnd/... 3 Window, ...
- ionic 嵌套view 的方法
我一直想在一个页面的同一个 DIV 里面嵌入一个不同的 HTML文件 ....但是总是没有达到我要的效果.....才发现原来我没有加一个 name 我用angular-ui 插件 里面的样式 总是 ...
- 自适应中overflow的作用
最近在做东西的时候发现overflow还有这样的妙处:可以实现自适应,之前没加overflow实现起来是有点问题的 代码如下: <!DOCTYPE html><html> &l ...