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

好不容易在网上找到了一个关于中国天气网的接口说明,就是上面那篇。决定访问下这个接口,对接口返回的内容进行分析,筛选出我想要的信息。

想到当时问及的接口主要是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接口测试的更多相关文章

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

    接上一篇,经过反复的查看,最终从这篇文章中找到了一个可用的JSON接口,于是研究了一下中国天气网JSON接口的测试: 和上一篇XML接口测试的原理是一样的,只是需要安装一下Newtonsoft.Jso ...

  2. [转载]中国天气网API

    最近在做个网站要用到天气网的api,在网上找了些参考资料,这篇文章对天气网api的介绍比较详细,所以转载之,谢谢原作者的辛勤劳动和奉献精神. 原文地址:http://g.kehou.com/t1033 ...

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

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

  4. 中国天气网API

    中国天气网有三个 API 适用于不同场合的使用. http://m.weather.com.cn/data/101050101.html 这个接口返回的格式如下. { "weatherinf ...

  5. 中国天气网 JSON接口的城市编码解析及结果

    最近在弄一个Android应用,其中一个功能是天气情况展示,准备使用google的天气API服务(http://www.google.com/ig/api?hl=zh-cn&weather=, ...

  6. scrapy实例:爬取中国天气网

    1.创建项目 在你存放项目的目录下,按shift+鼠标右键打开命令行,输入命令创建项目: PS F:\ScrapyProject> scrapy startproject weather # w ...

  7. 第十二、模块二、调用中国天气网和qqOnline及TrainTimeWebService接口来突出Json方法

    一. 浏览网页的时候,发送的请求.服务器反回来的永远是字符串,由于服务器后台使用的语言不通,所以就需要用工具反解,这里用到了json json方法一 json.loads()将字符串转化为python ...

  8. 中国天气网API接口

    http://www.weather.com.cn/data/sk/101010100.html http://www.weather.com.cn/data/cityinfo/101010100.h ...

  9. 中国天气网-天气预报接口api

    中国天气网地址:http://www.weather.com.cn 请求服务 : 查询实时天气信息 http://www.weather.com.cn/data/sk/101110101.html 在 ...

随机推荐

  1. Mac 下 FlashBuilder的快捷键

    Option + 上/下  当前行上下调整位置 Shift + Command + 左/右  选择当前行 Option + Command + 左/右 查看上一个类

  2. 【cube】SSAS(分析服务)优化手册

    优化前注意事项 1.数据质量.数据仓库中维度表的数据质量要严格保证.比如店仓的大区.省区.管理城市等属性和店仓代码没有一对多的上下级关系,这样在设计店仓维度时,就无法建立有效的层次结构.这会拖慢查询时 ...

  3. 关于header跳转之后的乱码问题

    关于header跳转之后的乱码问题 http://www.360doc.com/content/11/0603/19/7052474_121495648.shtml 问题:不同网站的跳转出现乱码,不同 ...

  4. webpack.config.js

    var webpack = require('webpack'); module.exports = { //插件项 plugins: [ new webpack.optimize.CommonsCh ...

  5. 对linux的根目录执行强制递归移除

    开始开始时使用: #rm -f -r / 提示对根目录使用递归操作很危险,然后就没执行成功,让使用 --no-preserve-root 这个参数. 好吧,反正是虚拟机 于是执行: #rm -f -r ...

  6. 「LAMP」在ubuntu及其衍生版上 安装LAMP

    在Ubuntu上安装LAMP 此种方法在Linux Mint 13/14/15/16/17.Ubuntu 12.10(Quantal Quetzal)和Ubuntu 13.04 Raring Ring ...

  7. 一个C#序列化时循环引用的问题

    以前一直没搞懂为什么C#在做对象序列化时(Json序列化,XML序列化等)有时候会出现循环引用的问题,下面写了个例子,类People有一个属性引用了类Child,而类Child也有一个属性引用了类Pe ...

  8. Eclipse启动认定SDK地址,出现Error executing aapt

    我把安卓的SDK安装在D盘,但是新建项目之后,提示的错误是 就是认定在F盘了,可是那个时候我只是在F盘启动了第一次,之后就拷贝到了D盘的, 是不是第一次启动就会注册了什么的呢? 解决方案: 更改你的e ...

  9. 关于路由器自定义 3322.org 的DDNS

    首先, 3322.org, 现在官网地址为: http://www.pubyun.com/ 注册用户后,如果支持 3322 的路由器,可以直接设置. 不支持的路由就要想办法自定义了. 3322 的 D ...

  10. 去除冗余 – 精简您的CSS样式代码

    讲讲常见的一些没有必要使用CSS代码情况,而这些不起作用可以去掉的CSS代码可能是我们经常忽视的.越是对CSS理解不够,越容易出现这些问题. 二.一些常见不必要CSS样式 1.与默认CSS样式一致 我 ...