作为一个初次使用WebApi的小白,我为了学会怎么调用并解析并展示到前台页面,花了整整一天的时间,说来惭愧
百度出来的答案全是面向大神编程,写成这样,能看懂的人就不需要看你的教程了,也许是人家是打算自己做个备忘录,没打算教学吧
而我不同,我觉得我三天不看,再看我还是看不懂,所以我会写一个无论什么时候看都能看懂的傻瓜式教程,也称为CC式教程(CC不是傻瓜)
由于我也是刚刚实现,就只能在这篇教程中写出我使用的方法以及遇到的问题,对于没有目标的初学者来说,可以增加一些对 C#调用api 的理解
首先对于小白来说,在哪调用别人的接口,代码写在哪就是一个问题,我使用的是Asp.Net,把代码写在aspx.cs文件下,aspx页面正好可以显示解析出来的内容,当然,你想写在哪个类都是可以的
本文以聚合数据的一个接口名为 “历史上的今天” 为例,它的返回内容是一个这样的json串,我们只提取他的日期和内容显示出来即可
然后我们现在前台写一个表格用来显示一会儿解析出来的内容
日期
新闻
现在回到cs文件写关键代码了,由于我也是刚刚实现,所以我也不是特别理解,只是怕哪天忘了,所以记录一下,大家浅喷
我就不做太多的代码解释,然后看代码
//定义一个请求api并获取返回内容的方法,url作为参数方便测试不同url
public static string QueryPostparamsService(string url)
{
//定义一个result用来存放接收到的json数据
string result = "";
//请求url
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
//请求方法为Get
req.Method = "Get";
//这里没有添加请求头,注释掉了
//req.Headers.Add()
//使用try-catch捕获异常情况
try
{
HttpWebResponse resp = (Htt服务器托管网pWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
//获取内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
}
}
catch (Exception ex)
{
result = ex.Message;
}
return result;
}
这里这个方法就可以获取到返回的json串了,如果代码有报错,那就鼠标点击报错位置引用相关的文件,然后是解析json串
protected void Page_Load(object sender, EventArgs e)
{
//历史上的今天
string lishishangdejintian = "http://v.juhe.cn/todayOnhistory/queryEvent.php?key=这里替换成你申请的key&date=4/24";
//调用QueryPostparamsService方法并传参(api地址)
string jsonchuan = QueryPostparamsService(lishishangdejintian);
//JObject jo = (JObject)JsonConvert.DeserializeObject(jsonchuan); //跟下方一行效果一样,两种写法,区别是什么我也不知道
//把json转为这个JObject类型,并放在 jo 里
JObject jo = JObject.Parse(jsonchuan);
try
{
//看文章第一个图,这里是根据返回的json串写的,我们把reason、result、error_code看做第一层,那么具体数据就在第二层
//有些api还有第三层,在后边再加一个[]就行了。jo 后跟第一层的名字[result],因为返回的是多条数据,并不是
//图中示例的一条,所以加个索引,我们取第一条数据,下表为0,然后后跟第二层的名字
//[date]就是取日期里的值,[title]就是取内容里的值,然后放到前台的单元格里
riqi.Text = jo["result"][0]["date"].ToString();
xinwen.服务器托管网Text = jo["result"][0]["title"].ToString();
}
catch
{
//出现异常会跳到这里
ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('出错了');");
}
}
引入的命名空间是这些
using Newtonsoft.Json.Linq;
using System;
using System.IO;
using System.Net;
using System.Text;
接下来执行就ok了,效果是这样的
暂时我就理解这么多, 后续我会更新更详细的方法
成功麻烦点个赞
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
CMA、CNAS 一、科技服务器托管网项目验收是什么? 科技项目验收测试是依据GB/T 17544《信息技术 软件包 质量要求和测试》、GB/T 16260《软件工程产品质量》,对申报国家、省、市科技项目、或企业申请中小企业创新基金、科技项目验收、科技成果鉴定…