《中国天气网》是国家气象局负责的天气网站,确切说是国家气象局的公共气象服务中心负责网站的运行和维护,上面的天气预报信息一般直接来源于中央气象台,所以和其他相比算是比较准确可靠的了。
在考虑获取天气代码上,采用了《中国天气网的信息》网上很多方法都是直接使用网页嵌套的方式来实现,对于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;
}
}
}
分享到:
相关推荐
httpwebrequest调用webservice返回数据
1.这是一个用HttpWebRequest类构建完整Http多部请求上传文件的示例 2.上传地址是金山文档预览的地址,所以,只要上传的是word、pdf、excel一类的文档,可以通过返回的地址直接在线预览,是一种偷懒的文档在线浏览...
C#中HttpWebRequest使用介绍 GET HTTP HTTPS 请求
C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
使用HttpWebRequest访问网页
1、启动和暂停下载 2、展示下载进度
C# 多线程基本于httpwebrequest实现的下载功能 每个线程均可以通过事件追踪情况
C#使用HttpWebRequest自动更新客户端应用程序
c# HttpWebRequest_和HttpWebResponse
C#(也称Csharp)在多线程下并发执行HTTP请求的实现,采用C#封装HttpWebRequest类开发的多线程并发采集程序源码文档,文档中详细说明了HttpWebRequest并发HTTP请求实现网站采集的方法,经过测试同时并发1000+不是问题...
包括了HttpGet同步请求、异步请求方法,HttpPost同步请求、异步请求方法,以及Post调用WebServer方法。
HttpWebRequest: ...使用HttpWebRequest可以让开发者控制请求/...HttpWebRequest通常和WebResponse一起使用,一个发送请求,一个获取数据。HttpWebRquest更为底层一些,能够对整个访问过程有个直观的认识,但同时也更加复
c#HttpWebRequest与HttpWebResponse实现模拟点击链接,模拟点击按钮和,网页抓取
根据经纬度获取当地的即时天气状况 public weather(string latitude, string longtitude) //经伟度 { try { string output = "json"; string url = string.Format(...
本文将讲述如何采用HttpWebRequest方式每次读取固定大小数据片段(如4KB)发送至服务器,为大文件上传提供解决方案,本文还将详细讲述如何将“文件上传”功能做为用户自定义控件,实现模块重用。
C#HttpWebRequest大文件断点续传类,简洁,清晰易懂,大家有空可以下载拿去研究
兼容c# HttpWebRequest类及相关数据结构的c++多线程下载封装类,底层使用curl实现。可以用于unity多线程下载,解决unity某些版本多线程不稳定的问题。(不含源码,仅64位动态库,旧资源已废弃,需要请联系作者)
c# 使用WebRequest实现多文件上传.docx
C# asp.net http HttpWebRequest模拟浏览器请求下载文件到本地
主要介绍了C#中HttpWebRequest的用法,以实例的形式详细叙述了HttpWebRequest类中GET与POST的用法,非常具有参考借鉴价值,需要的朋友可以参考下