接上一篇,经过反复的查看,最终从这篇文章中找到了一个可用的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接口测试相关推荐

  1. C#实现中国天气网XML接口测试

    点击链接查看中国天气网接口说明,最近想研究一下接口测试,源于最近一次和某公司的技术总监(交大校友)谈话,发现接口测试的需求是比较大的,于是想要研究一下. 好不容易在网上找到了一个关于中国天气网的接口说 ...

  2. php 对接中国天气网 城市 id json串

    java 代码 package fun; import java.util.ArrayList; import java.util.List; /** * @author bin * cape no7 ...

  3. 中国天气网 天气预报API 国家气象局 根据城市名称抓取城市ID,XML格式、JSON格式、图片代码...

    为什么80%的码农都做不了架构师?>>>    说到开发天气预报,就需要找一个开放接口了,接口有很多,不过个人觉得,中国天气网的数据比较准确,而且也有权威性.访问地址 如:http: ...

  4. html获取中国天气,Json获取中国天气网天气预报的代码

    Json获取中国天气网天气预报的代码 文章作者:网友投稿 发布时间:2010-07-14 14:20:08 来源:网络 获取中国天气网天气的代码 var url=escape(http://m.wea ...

  5. 中国天气网接口返回json格式分析及接口(XML、图片接口)说明!

    手机天气插件更新数据时某些天气插件更新时流量有点儿消耗稍大,所以还是自己动手丰衣足食啊,未来7天返回的流量(当然这个要看具体天气和生活指数里返回的大小了关键是生活指数) 实时的: 中国天气网返回未来7 ...

  6. 中国天气网接口返回json格式分析及接口(XML 图片接口)说明

    手机天气插件更新数据时某些天气插件更新时流量有点儿消耗稍大,所以还是自己动手丰衣足食啊,未来7天返回的流量(当然这个要看具体天气和生活指数里返回的大小了关键是生活指数) 实时的: 中国天气网返回未来7 ...

  7. Android解析中国天气网的Json数据

    在Android开发中.一般的APP都是通过获取server端的数据来更新UI.从server获取到的数据能够是Json.它的数据量要比XML要小,这里解析中国天气网上获取的数据,尽管已经不再更新了. ...

  8. android往天气接口里面传城市,Android使用中国天气网API数据通过城市名称获取天气情况...

    项目要求在应用首页面展示本地当日天气的概况,首先想到的是google和雅虎,前者很久之前接触过,听说后来用不了了,后者由于邮箱事件的缘故个人不喜欢(虽然貌似苹果也用雅虎的天气预报),之后又想到了前段时 ...

  9. 气象接口返回图标_中国天气网API接口

    这三个已经停用,数据不再更新,即使修改Referer,得到的已经不是正确的信息. 官网提供的API 一.调用规范 规范用于指导三方合作伙伴合理调用指数.3天常规预报(24小时)预报服务数据. 请求方式 ...

  10. 中国天气网api接口

    一.中国天气网API   中国天气网官方api接口已经停止更新,因此许多以前的博客上的api接口已经失效.因为最近布置了一个关于天气预报的作业,因此以作记录找到的api. 1.1 Json格式的预报 ...

最新文章

  1. Pandas_transform的用法
  2. 【C++】stack的部分使用(之后会不定时进行更新)
  3. MySQL federated 引擎跨服务器使用实例
  4. java和python根据对象某一个属性排序
  5. python哪本好-python哪本书好
  6. SpringSide 3 中的 Struts 2
  7. (诊断)No module named MySQLdb
  8. 定义和使用含有泛型的方法
  9. js 正则 显示千分号 支持整数和小数
  10. C++ 的Tool工具收集
  11. Android优化系列之ListView优化老生常谈
  12. 《软件测试与质量保证》期末复习重点
  13. 太极root权限_太极iOS 8.4完美越狱曝安全隐患:Root权限易获取
  14. 谷歌浏览器连接超时_技术丨常见在线课堂网络连接网络视频播放的解决方案...
  15. Redis系列之内存碎片
  16. 音视频编码格式和封装格式的关系和区别是什么?
  17. [工具:iperf吞吐率测试工具 ]安装以及使用
  18. 弘辽科技:直通车测款的必备技巧
  19. 计算机word表格公开课ppt,word表格制作课件公开课.ppt
  20. 2019 春季算法工程师实习生招聘历程

热门文章

  1. 移植oprofile到海思
  2. 重定向telnet方法
  3. PHP获取表单数据的方法有几种,php获取表单数据的两种方法说明
  4. Linux内核如何启动并装载一个可执行程序
  5. SimpleFs文件系统初步一(编译并挂载)
  6. Shell脚本 批量修改目录下若干文件名
  7. Linux中的Page cache和Buffer cache详解
  8. ado、odbc连接Postgre SQL
  9. android studio 中禁用一个插件功能
  10. LSTM VS RNN改进