C#实现中国天气网XML接口测试
点击链接查看中国天气网接口说明,最近想研究一下接口测试,源于最近一次和某公司的技术总监(交大校友)谈话,发现接口测试的需求是比较大的,于是想要研究一下。
好不容易在网上找到了一个关于中国天气网的接口说明,就是上面那篇。决定访问下这个接口,对接口返回的内容进行分析,筛选出我想要的信息。
想到当时问及的接口主要是json类型的,但是苦于没有找到json类型的接口(上文中的json接口貌似失效了),就先拿xml类型的接口试验一下,我想原理应该都差不多,只是具体的实现有些不同。
若谁有可用的json接口方便透漏一下,欢迎留言,非常感谢!
以下以从中国天气网接口返回的内容中获取关于北京城市的天气信息举例,代码如下:
using System;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Xml.Linq; namespace InterfaceTest
{
class Program
{
static void Main(string[] args)
{
ReportWeather("北京");
} private static void ReportWeather(string cityName)
{
string localContent = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + @"\test.txt";
try
{
string url = "http://flash.weather.com.cn/wmaps/xml/china.xml";
WebClient MyWebClient = new WebClient();
Byte[] pageData = MyWebClient.DownloadData(url);
string pageHtml = Encoding.UTF8.GetString(pageData);
//XDocument doc = XDocument.Parse(pageHtml);
using (StreamWriter sw = new StreamWriter(localContent))
{
sw.WriteLine(pageHtml);
}
XDocument doc = XDocument.Parse(pageHtml);
//XDocument doc = XDocument.Load(localContent);
var results = from ele in doc.Descendants("city") where ele.Attribute("cityname").Value.Equals(cityName) select ele;
foreach (var result in results)
{
Console.WriteLine("城市:" + cityName);
Console.WriteLine("天气情况:" + result.Attribute("stateDetailed").Value);
Console.WriteLine("气温情况(摄氏度):" + result.Attribute("tem1").Value + "到" + result.Attribute("tem2").Value);
Console.WriteLine("风力情况:" + result.Attribute("windState").Value);
}
Console.ReadLine();
}
catch (WebException webEx)
{
Console.WriteLine(webEx.Message.ToString());
}
}
}
}
不管是不是为了方便起见,我把接口返回的信息保存到了本地一份(路径为localContent),内容如下:

运行截图如下(多云转霾……记得小时候听天气预报都是多云转晴……唉……):

这样我们就实现了对xml接口返回信息的过滤,对于xml类型接口的测试。
C#实现中国天气网XML接口测试的更多相关文章
- C#实现中国天气网JSON接口测试
接上一篇,经过反复的查看,最终从这篇文章中找到了一个可用的JSON接口,于是研究了一下中国天气网JSON接口的测试: 和上一篇XML接口测试的原理是一样的,只是需要安装一下Newtonsoft.Jso ...
- [转载]中国天气网API
最近在做个网站要用到天气网的api,在网上找了些参考资料,这篇文章对天气网api的介绍比较详细,所以转载之,谢谢原作者的辛勤劳动和奉献精神. 原文地址:http://g.kehou.com/t1033 ...
- Android解析中国天气网的Json数据
在Android开发中.一般的APP都是通过获取server端的数据来更新UI.从server获取到的数据能够是Json.它的数据量要比XML要小,这里解析中国天气网上获取的数据,尽管已经不再更新了. ...
- 中国天气网API
中国天气网有三个 API 适用于不同场合的使用. http://m.weather.com.cn/data/101050101.html 这个接口返回的格式如下. { "weatherinf ...
- 中国天气网 JSON接口的城市编码解析及结果
最近在弄一个Android应用,其中一个功能是天气情况展示,准备使用google的天气API服务(http://www.google.com/ig/api?hl=zh-cn&weather=, ...
- scrapy实例:爬取中国天气网
1.创建项目 在你存放项目的目录下,按shift+鼠标右键打开命令行,输入命令创建项目: PS F:\ScrapyProject> scrapy startproject weather # w ...
- 第十二、模块二、调用中国天气网和qqOnline及TrainTimeWebService接口来突出Json方法
一. 浏览网页的时候,发送的请求.服务器反回来的永远是字符串,由于服务器后台使用的语言不通,所以就需要用工具反解,这里用到了json json方法一 json.loads()将字符串转化为python ...
- 中国天气网API接口
http://www.weather.com.cn/data/sk/101010100.html http://www.weather.com.cn/data/cityinfo/101010100.h ...
- 中国天气网-天气预报接口api
中国天气网地址:http://www.weather.com.cn 请求服务 : 查询实时天气信息 http://www.weather.com.cn/data/sk/101110101.html 在 ...
随机推荐
- 数据库迁移之从oracle 到 MySQL
方式一: 手动方式导入导出 手动的方式导入, 就是操作步骤会比较繁琐一些. 对Table 的结构和数据: 1. 使用 SQL Developer 把 oracle 的 table 的schema 和 ...
- (转)flexigrid 参数说明
本文为转载 http://simple1024.iteye.com/blog/1171090 项目用到这玩意,像样的API都是英文的,英文不好,所以经过各种搜集,flexigrid就整理了这么多用得上 ...
- 转:Busy Developers' Guide to HSSF and XSSF Features
Busy Developers' Guide to Features Want to use HSSF and XSSF read and write spreadsheets in a hurry? ...
- 强连通(hdu4635)最多增加几条单向边后满足最终的图形不是强连通
Strongly connected Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [转]EasyUI——常见用法总结
原文链接: EasyUI——常见用法总结 1. 使用 data-options 来初始化属性. data-options是jQuery Easyui 最近两个版本才加上的一个特殊属性.通过这个属性,我 ...
- java多线程实现卖票小程序
package shb.java.demo; /** * 多线程测试卖票小程序. * @Package:shb.java.demo * @Description: * @author shaobn * ...
- Open quote is expected for attribute "property" associated with an element type "result".错误
java Mybatis 框架下的项目 报 Open quote is expected for attribute "property" associated with a ...
- 夺命雷公狗---2016-linux---2之软件实现远程登录
废话不多说,操作方法如下所示:
- dbms_sql包的用法
http://blog.itpub.net/20948385/viewspace-691398 对于一般的select操作,如果使用动态的sql语句则需要进行以下几个步骤: open cursor ...