IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 使用HTTP的GET请求做一个简单的天气预报 -> 正文阅读

[网络协议]使用HTTP的GET请求做一个简单的天气预报

使用POST请求获取一个简单的天气预报

使用到的技术

数据库
数据库操作
XML转json
json或者XML写入数据库
HTTP的GET请求

请求代码

        /// <summary>
        /// 指定Url地址使用Get 方式获取全部字符串
        /// </summary>
        /// <param name="url">请求链接地址</param>
        /// <returns>服务器返回的数据</returns>
        public static string Get(string url)
        {
            string result = "";
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            Stream stream = resp.GetResponseStream();
            try
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    result = reader.ReadToEnd();
                }
            }
            finally
            {
                stream.Close();
            }
            return result;
        }

发送请求示例

	///cityName 城市名称, 北京  
        public static string GetWeathrtInfo(string cityName)
        {
            int cityCode = GetCityCodeByCityName(cityName);
            string result = "";
            if (cityCode == 000000)
            {
                result = "未能获取到城市信息(城市天气预报代码)";
                return result;
            }
            else
            {
                string url = "http://www.weather.com.cn/data/sk/" + cityCode + ".html";
                result = HttpRequestHelper.Get(url);
            }
            return result;
        }

        /// <summary>
        /// 根据名称获取城市代码
        /// </summary>
        /// <param name="cityName">城市名称</param>
        /// <returns>城市代码  0000不存在</returns>
        private static int GetCityCodeByCityName(string cityName)
        {
            int code = 0;
            string c = CityInfoJson.Info.Replace("-", "");
            List<County> cv = JsonConvert.DeserializeObject<List<County>>(c);
            County county = cv.Find(x => x.name == cityName);
            if (county == null)
            {
                code = 000000;
            }
            else
            {
                code = int.Parse(county.weatherCode);
            }
            ShuJuKuChaXun("北京");
            return code;
        }

其中CityInfoJson.Info的信息在这篇博客

https://blog.csdn.net/GoodCooking/article/details/124083226

切勿直接将信息复制到IDE中,会把IDE直接卡死。
复制到txt中,然后去读取

信息处理

读取XML信息,然后

 string[] str1 = File.ReadAllLines(@"C:\Users\GoodCooking\Desktop\wyh_Post\wyh_Post\hello.txt");//读取文件,去除不用的字符
            //也可以指定编码方式 

            for (int i = 0; i < str1.Length; i++)
            {
                if (str1[i].Contains("</city>"))
                {
                    str1[i] = "";
                }
                if (str1[i].Contains("</province>"))
                {
                    str1[i] = "";
                }
                if (str1[i].Contains("<city id="))
                {
                    str1[i] = "";
                }

                if (str1[i].Contains("<province id="))
                {
                    str1[i] = "";
                }

            }

            File.WriteAllLines(@"C:\Users\GoodCooking\Desktop\wyh_Post\wyh_Post\hello_new.xml", str1);//写入新的文件

然后将新的文件拷贝到浏览器的XML转JSON中去,将XML转成JSON,并创建对象,将转好的JSON,保存在记事本中,在CityInfoJson中读取读取保存的json,赋值给info。

namespace wyh_Post
{

    public class County
    {
        /// <summary>
        /// 
        /// </summary>
        public string id { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string name { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string weatherCode { get; set; }
    }

    public class China
    {
        /// <summary>
        /// 
        /// </summary>
        public List<County> county { get; set; }
    }

    public class Root
    {
        /// <summary>
        /// 
        /// </summary>
        public China China { get; set; }
    }
}
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-15 00:40:35  更:2022-04-15 00:44:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:44:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码