`
Freekingismy
  • 浏览: 18428 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

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;
        }     
    }
}
分享到:
评论

相关推荐

    c# httpwebrequest调用webservice demo

    ### C# 使用 HttpWebRequest 调用 WebService 的方法详解 在C#开发中,有时候我们需要与WebService进行交互,获取或发送数据。本篇文章将详细介绍如何利用`HttpWebRequest`类来实现这一功能,并通过示例代码帮助...

    C# HttpWebRequest上传文件示例

    1.这是一个用HttpWebRequest类构建完整Http多部请求上传文件的示例 2.上传地址是金山文档预览的地址,所以,只要上传的是word、pdf、excel一类的文档,可以通过返回的地址直接在线预览,是一种偷懒的文档在线浏览...

    C# HttpWebRequest断点续传

    本知识点主要探讨如何使用C#中的HttpWebRequest类实现断点续传和下载进度的展示。 首先,断点续传是一种允许用户在中断网络连接后从上次中断的位置继续下载的技术,极大地提高了用户体验,特别是对于大文件下载。在...

    C#天气预报源代码

    【C#天气预报源代码】项目是一个利用C#编程语言实现的应用程序,它能够通过连接Yahoo的天气API获取中国各大城市的实时天气预报信息,并在用户界面中展示出来。这个项目对于学习C#网络编程、XML解析以及GUI设计具有很...

    C#中HttpWebRequest介绍

    ### C#中HttpWebRequest类简介 `HttpWebRequest`是.NET Framework中用于发送HTTP请求的一个类。它允许开发人员通过C#进行网络编程时,能够更加灵活地控制HTTP请求的具体细节。在实际开发过程中,特别是在与远程...

    C#实现通过HttpWebRequest发送POST请求实现网站自动登陆

    本文将详细介绍如何使用C#中的`HttpWebRequest`来发送POST请求,并实现网站的自动登录。 #### 发送POST请求的基本步骤 1. **创建HttpRequest对象**:首先需要创建一个`HttpWebRequest`对象,并设置其URL地址。 2. ...

    C#HttpWebRequest大文件断点续传类

    C#HttpWebRequest大文件断点续传类,简洁,清晰易懂,大家有空可以下载拿去研究

    c# HttpWebRequest的一个Demo

    总的来说,`HttpWebRequest`是C#中强大的网络通信工具,通过它,开发者可以方便地与Web服务器进行交互,实现数据的获取和发送。在实际项目中,结合其他类如`HttpWebResponse`和`StreamReader`,我们可以构建出高效且...

    用asp.net-c#-HttpWebRequest获取网页源代码.doc

    用asp.net-c#-HttpWebRequest获取网页源代码.doc

    C# httpwebrequest 多线程下载类

    在C#编程中,开发人员经常需要...通过分析和学习这段代码,可以加深对`HttpWebRequest`和多线程下载的理解,进一步提升C#网络编程技能。在实际项目中,可以根据具体需求对其进行修改和扩展,以满足各种复杂的下载场景。

    C#使用HttpWebRequest自动更新客户端应用程序

    6. **源码分析**:由于没有提供具体的源代码,无法深入分析每个类的具体实现,但以上给出了一个基于C#和HttpWebRequest的自动更新系统的基本框架和工作原理。实际的代码实现会涉及更多的异常处理、多线程、文件操作...

    C# HttpWebRequest动态调用WebApi、WCF、WebServer方法

    包括了HttpGet同步请求、异步请求方法,HttpPost同步请求、异步请求方法,以及Post调用WebServer方法。

    C#中HttpWebRequest、WebClient、HttpClient的使用详解

    HttpWebRequest: ...使用HttpWebRequest可以让开发者控制请求/...HttpWebRequest通常和WebResponse一起使用,一个发送请求,一个获取数据。HttpWebRquest更为底层一些,能够对整个访问过程有个直观的认识,但同时也更加复

    天气预报源码、包括从IP获取天气预报(C#)

    这是一个基于C#编程语言开发的天气预报应用源码,它具备从IP地址获取实时天气信息的功能。这个项目可能对学习C#编程、网络编程以及如何与API交互的开发者特别有帮助。下面我们将深入探讨其中涉及的关键知识点。 1. ...

    C#在WinForm下使用HttpWebRequest上传文件并显示进度

    在.NET框架中,C#是一种常用的编程语言,用于开发各种应用程序,包括Windows桌面应用(WinForms)。本知识点将深入探讨如何在WinForm环境下利用HttpWebRequest类实现文件上传,并且展示上传进度,这对于创建Web...

    C#(Csharp)多线程HTTP并发请求(HttpWebRequest)采集蜘蛛

    在C#中,可以利用这两个类实现异步请求,以并发方式下载多个URL资源,从而提高下载速度。 3. **并发控制**:在并发请求时,需要控制同时进行的请求数量,以避免服务器压力过大或资源浪费。通过一个布尔数组_...

    c#HttpWebRequest_和HttpWebResponse

    ### C#中的HttpWebRequest与HttpWebResponse详解 #### 一、引言 在C#编程语言中,`HttpWebRequest`和`HttpWebResponse`是处理HTTP请求和响应的核心类。这两个类通常一起使用,来实现客户端与服务器之间的通信。...

    C#新浪天气预报

    本项目“C#新浪天气预报”是一个基于C#编写的实用工具,它能实时获取并显示新浪天气API提供的气象信息,同时具有美观的用户界面和动态效果,对于C#初学者来说,这是一个很好的学习资源。 首先,我们需要了解如何...

    图片批量下载器[C# _ WinForm _ 正则表达式 _ HttpWebRequest]

    在本项目中,我们使用HttpWebRequest发送GET请求到指定的网页,获取网页的源代码,然后通过正则表达式从中提取图片URL。一旦获取到URL,HttpWebRequest可以再次发起请求,这次是下载图片,将其保存到本地。 具体...

Global site tag (gtag.js) - Google Analytics