C#实现中国天气网JSON接口测试
接上一篇,经过反复的查看,最终从这篇文章中找到了一个可用的JSON接口,于是研究了一下中国天气网JSON接口的测试:
和上一篇XML接口测试的原理是一样的,只是需要安装一下Newtonsoft.Json:
这个就是传说中的JSON.Net!在项目右键点击“管理NuGet程序包”中搜索json.net然后安装即可,等到项目的引用中出现这个东西的时候就可以在程序里using Newtonsoft.Json了。
还是老套路,不管有用没用,先把接口返回的JSON内容保存到本地一份。这里为了查看方便我直接在控制台打印出来了,方便查看JSON的结构并加以分析:
通过JSON.Net对字符串进行反序列化(也可以强转),然后对内容加以分析即可,至于想测试,一般是比较值。这里就做一次遍历,不做比较了。代码如下:
using System; using System.Text; using Newtonsoft.Json; using System.Net; using System.IO; using Newtonsoft.Json.Linq;namespace JsonInterfaceTest {class Program{static void Main(string[] args){test(101010100);}private static void test(int interfaceNumber){string url = "http://www.weather.com.cn/adat/cityinfo/" + interfaceNumber + ".html";string localContent = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + @"\test.txt";try{WebClient MyWebClient = new WebClient();Byte[] pageData = MyWebClient.DownloadData(url);string pageHtml = Encoding.UTF8.GetString(pageData);using (StreamWriter sw = new StreamWriter(localContent)){sw.WriteLine(pageHtml);}//JObject jObj = JObject.Parse(pageHtml);JObject jObj = JsonConvert.DeserializeObject(pageHtml) as JObject;Console.WriteLine(jObj.ToString());ReadJson(jObj);Console.ReadLine();}catch (WebException webEx){Console.WriteLine(webEx.Message.ToString());}}private static void ReadJson(JObject jObj){foreach (var o in jObj){Console.Write(o.Key+":");if (o.Value is JObject){Console.WriteLine();ReadJson(JsonConvert.DeserializeObject(o.Value.ToString()) as JObject);}else{Console.WriteLine(o.Value);}}}} }
换汤不换药,稍微改一下上面的接口测试程序就可以通过快递接口查快递了(通过快递公司代号和快递单号):
using System; using System.Text; using Newtonsoft.Json; using System.Net; using System.IO; using Newtonsoft.Json.Linq;namespace JsonInterfaceTest {class Program{static void Main(string[] args){test("zhongtong", 368583049476);Console.Read();}private static void test(string a, long b){string url = "http://www.kuaidi100.com/query?type=" + a + "&postid=" + b; string localContent = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + @"\test.txt";try{WebClient MyWebClient = new WebClient();Byte[] pageData = MyWebClient.DownloadData(url);string pageHtml = Encoding.UTF8.GetString(pageData);using (StreamWriter sw = new StreamWriter(localContent)){sw.WriteLine(pageHtml);}JObject jObj = JObject.Parse(pageHtml);//JObject jObj = JsonConvert.DeserializeObject(pageHtml) as JObject; Console.WriteLine(jObj.ToString());ReadJson(jObj);Console.ReadLine();}catch (WebException webEx){Console.WriteLine(webEx.Message.ToString());}}private static void ReadJson(JObject jObj){foreach (var o in jObj){Console.Write(o.Key + ":");if (o.Value is JObject){Console.WriteLine();ReadJson(JsonConvert.DeserializeObject(o.Value.ToString()) as JObject);}else{Console.WriteLine(o.Value);}}}} }
其实用PowerShell脚本来完成这个测试是更加方便的!微软给我们提供了很方便的“ConvertFrom-Json”这一cmdlet来实现我们对Json对象的交互!代码如下:
function test() {param($interfaceNumber)$url = "http://www.weather.com.cn/adat/cityinfo/" + $interfaceNumber + ".html";$jsonObject = Invoke-WebRequest -Uri $url | %{$_.Content} | ConvertFrom-Jsonif($jsonObject.weatherinfo.img1 -eq "d1.gif"){Write-Host "Test pass!" -ForegroundColor Green} } test -interfaceNumber 101010100
调用脚本执行效果如下:
C#实现中国天气网JSON接口测试相关推荐
- C#实现中国天气网XML接口测试
点击链接查看中国天气网接口说明,最近想研究一下接口测试,源于最近一次和某公司的技术总监(交大校友)谈话,发现接口测试的需求是比较大的,于是想要研究一下. 好不容易在网上找到了一个关于中国天气网的接口说 ...
- php 对接中国天气网 城市 id json串
java 代码 package fun; import java.util.ArrayList; import java.util.List; /** * @author bin * cape no7 ...
- 中国天气网 天气预报API 国家气象局 根据城市名称抓取城市ID,XML格式、JSON格式、图片代码...
为什么80%的码农都做不了架构师?>>> 说到开发天气预报,就需要找一个开放接口了,接口有很多,不过个人觉得,中国天气网的数据比较准确,而且也有权威性.访问地址 如:http: ...
- html获取中国天气,Json获取中国天气网天气预报的代码
Json获取中国天气网天气预报的代码 文章作者:网友投稿 发布时间:2010-07-14 14:20:08 来源:网络 获取中国天气网天气的代码 var url=escape(http://m.wea ...
- 中国天气网接口返回json格式分析及接口(XML、图片接口)说明!
手机天气插件更新数据时某些天气插件更新时流量有点儿消耗稍大,所以还是自己动手丰衣足食啊,未来7天返回的流量(当然这个要看具体天气和生活指数里返回的大小了关键是生活指数) 实时的: 中国天气网返回未来7 ...
- 中国天气网接口返回json格式分析及接口(XML 图片接口)说明
手机天气插件更新数据时某些天气插件更新时流量有点儿消耗稍大,所以还是自己动手丰衣足食啊,未来7天返回的流量(当然这个要看具体天气和生活指数里返回的大小了关键是生活指数) 实时的: 中国天气网返回未来7 ...
- Android解析中国天气网的Json数据
在Android开发中.一般的APP都是通过获取server端的数据来更新UI.从server获取到的数据能够是Json.它的数据量要比XML要小,这里解析中国天气网上获取的数据,尽管已经不再更新了. ...
- android往天气接口里面传城市,Android使用中国天气网API数据通过城市名称获取天气情况...
项目要求在应用首页面展示本地当日天气的概况,首先想到的是google和雅虎,前者很久之前接触过,听说后来用不了了,后者由于邮箱事件的缘故个人不喜欢(虽然貌似苹果也用雅虎的天气预报),之后又想到了前段时 ...
- 气象接口返回图标_中国天气网API接口
这三个已经停用,数据不再更新,即使修改Referer,得到的已经不是正确的信息. 官网提供的API 一.调用规范 规范用于指导三方合作伙伴合理调用指数.3天常规预报(24小时)预报服务数据. 请求方式 ...
- 中国天气网api接口
一.中国天气网API 中国天气网官方api接口已经停止更新,因此许多以前的博客上的api接口已经失效.因为最近布置了一个关于天气预报的作业,因此以作记录找到的api. 1.1 Json格式的预报 ...
最新文章
- Pandas_transform的用法
- 【C++】stack的部分使用(之后会不定时进行更新)
- MySQL federated 引擎跨服务器使用实例
- java和python根据对象某一个属性排序
- python哪本好-python哪本书好
- SpringSide 3 中的 Struts 2
- (诊断)No module named MySQLdb
- 定义和使用含有泛型的方法
- js 正则 显示千分号 支持整数和小数
- C++ 的Tool工具收集
- Android优化系列之ListView优化老生常谈
- 《软件测试与质量保证》期末复习重点
- 太极root权限_太极iOS 8.4完美越狱曝安全隐患:Root权限易获取
- 谷歌浏览器连接超时_技术丨常见在线课堂网络连接网络视频播放的解决方案...
- Redis系列之内存碎片
- 音视频编码格式和封装格式的关系和区别是什么?
- [工具:iperf吞吐率测试工具 ]安装以及使用
- 弘辽科技:直通车测款的必备技巧
- 计算机word表格公开课ppt,word表格制作课件公开课.ppt
- 2019 春季算法工程师实习生招聘历程