C# HttpWebRequest方式获取《中国天气》天气预报代码【转】

《中国天气网》是国家气象局负责的天气网站,确切说是国家气象局的公共气象服务中心负责网站的运行和维护,上面的天气预报信息一般直接来源于中央气象台,所以和其他相比算是比较准确可靠的了。
在考虑获取天气代码上,采用了《中国天气网的信息》网上很多方法都是直接使用网页嵌套的方式来实现,对于Web App 这是非常正确的,要不然获取的就是服务器所在地的天气状况,本例主要用在WinForm上面;
代码可以自动获取当前IP所在的城市,然后通过城市ID来获取当前城市的天气情况;

代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
namespace BlogPromotion
{
/// <summary>
/// 获取当地的天气状况
/// </summary>
public class WeatherGet
{
/// <summary>
/// 获取城市代码
/// </summary>
/// <returns></returns>
private static string GetCityId()
{
HttpWebRequest wNetr = (HttpWebRequest)HttpWebRequest.Create("http://61.4.185.48:81/g/");
HttpWebResponse wNetp = (HttpWebResponse)wNetr.GetResponse();
wNetr.ContentType = "text/html";
wNetr.Method = "Get";
Stream Streams = wNetp.GetResponseStream();
StreamReader Reads = new StreamReader(Streams, Encoding.UTF8);
String ReCode = Reads.ReadToEnd();
//关闭暂时不适用的资源
Reads.Dispose();
Streams.Dispose();
wNetp.Close();
//分析返回代码
String[] Temp = ReCode.Split(';');
ReCode = Temp[1].Replace("var id=", "");
return ReCode;
}
/// <summary>
/// 获取城市的天气状况
/// </summary>
/// <returns></returns>
public static string GetWeather()
{
string wUrl = string.Format("http://m.weather.com.cn/data/{0}.html",GetCityId());
HttpWebRequest wNetr = (HttpWebRequest)HttpWebRequest.Create(wUrl);
HttpWebResponse wNetp = (HttpWebResponse)wNetr.GetResponse();
wNetr.ContentType = "text/html";
wNetr.Method = "Get";
Stream Streams = wNetp.GetResponseStream();
StreamReader Reads = new StreamReader(Streams, Encoding.UTF8);
String ReCode = Reads.ReadToEnd();
//关闭暂时不适用的资源
Reads.Dispose();
Streams.Dispose();
wNetp.Close();
//分析返回代码
String[] Splits = new String[] { "\"",",","\"" };
String[] Temp = ReCode.Split(Splits,StringSplitOptions.RemoveEmptyEntries);
ReCode = String.Format("天气:{0} {1} {2}",Temp[5],Temp[62],Temp[26]);
return ReCode;
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值