获取天气预报

目录

一 设计原型

二 后台源码


一 设计原型

二 后台源码

using Newtonsoft.Json;
using System.Net;
using System.Text;

namespace 获取天气预报
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void button1_Click(object sender, EventArgs e)
        {
            string url = "http://t.weather.sojson.com/api/weather/city/101091101";
            string content = GetRemoteData(url);
            WaterData waterData = JsonConvert.DeserializeObject<WaterData>(content);
            if (waterData != null)
            {
                date.Text = waterData.date;
                time.Text = waterData.time;

                List<City> cities = new List<City>();
                cities.Add(waterData.cityInfo);
                city.DataSource = cities;

                datas.DataSource = waterData.data.forecast;

                List<Yesterday> Yesterdays = new List<Yesterday>();
                Yesterdays.Add(waterData.data.yesterday);
                yesterday.DataSource = Yesterdays;
            }
        }


        /// <summary>
        /// 请求类
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        private static string GetRemoteData(string url)
        {
            string HtmlCode = "";
            HttpWebRequest wrequest = (HttpWebRequest)WebRequest.Create(url);
            try
            {
                HttpWebResponse wresponse = (HttpWebResponse)wrequest.GetResponse();
                Stream stream = wresponse.GetResponseStream();
                StreamReader reader = new StreamReader(stream, Encoding.UTF8);
                HtmlCode = reader.ReadToEnd();
                reader.Close();
                wresponse.Close();
            }
            catch
            {
                HtmlCode = "Error";
            }
            return HtmlCode;
        }

    }

    public class WaterData
    {
        public string message { get; set; }
        public int status { get; set; }
        public string date { get; set; }
        public string time { get; set; }
        public City cityInfo { get; set; }
        public Data data { get; set; }
    }



    public class City
    {
        public string city { get; set; }
        public string citykey { get; set; }
        public string parent { get; set; }
        public string updateTime { get; set; }
    }

    public class Data
    {
        public string shidu { get; set; }
        public double pm25 { get; set; }
        public double pm10 { get; set; }
        public string quality { get; set; }
        public string wendu { get; set; }
        public string ganmao { get; set; }
        public List<ForeCast> forecast { get; set; }
        public Yesterday yesterday { get; set; }
    }



    public class ForeCast
    {
        public string date { get; set; }
        public string high { get; set; }
        public string low { get; set; }
        public string ymd { get; set; }
        public string week { get; set; }
        public string sunrise { get; set; }
        public string sunset { get; set; }
        public int aqi { get; set; }
        public string fx { get; set; }
        public string fl { get; set; }
        public string type { get; set; }
        public string notice { get; set; }
    }

    public class Yesterday
    {
        public string date { get; set; }
        public string high { get; set; }
        public string low { get; set; }
        public string ymd { get; set; }
        public string week { get; set; }
        public string sunrise { get; set; }
        public string sunset { get; set; }
        public string aqi { get; set; }
        public string fx { get; set; }
        public string fl { get; set; }
        public string type { get; set; }
        public string notice { get; set; }
    }
}

设计器自动生成源码:

namespace 获取天气预报
{
    partial class Form1
    {
        /// <summary>
        ///  Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        ///  Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        ///  Required method for Designer support - do not modify
        ///  the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            datas = new DataGridView();
            button1 = new Button();
            label1 = new Label();
            date = new TextBox();
            time = new TextBox();
            label2 = new Label();
            city = new DataGridView();
            yesterday = new DataGridView();
            ((System.ComponentModel.ISupportInitialize)datas).BeginInit();
            ((System.ComponentModel.ISupportInitialize)city).BeginInit();
            ((System.ComponentModel.ISupportInitialize)yesterday).BeginInit();
            SuspendLayout();
            // 
            // datas
            // 
            datas.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            datas.Location = new Point(26, 103);
            datas.Name = "datas";
            datas.RowHeadersWidth = 51;
            datas.Size = new Size(1443, 406);
            datas.TabIndex = 0;
            // 
            // button1
            // 
            button1.Location = new Point(666, 717);
            button1.Name = "button1";
            button1.Size = new Size(94, 29);
            button1.TabIndex = 1;
            button1.Text = "获取天气预报";
            button1.UseVisualStyleBackColor = true;
            button1.Click += button1_Click;
            // 
            // label1
            // 
            label1.AutoSize = true;
            label1.Location = new Point(26, 16);
            label1.Name = "label1";
            label1.Size = new Size(39, 20);
            label1.TabIndex = 2;
            label1.Text = "日期";
            // 
            // date
            // 
            date.Location = new Point(78, 13);
            date.Name = "date";
            date.Size = new Size(267, 27);
            date.TabIndex = 3;
            // 
            // time
            // 
            time.Location = new Point(78, 63);
            time.Multiline = true;
            time.Name = "time";
            time.Size = new Size(267, 27);
            time.TabIndex = 5;
            // 
            // label2
            // 
            label2.AutoSize = true;
            label2.Location = new Point(26, 66);
            label2.Name = "label2";
            label2.Size = new Size(39, 20);
            label2.TabIndex = 4;
            label2.Text = "时间";
            // 
            // city
            // 
            city.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            city.Location = new Point(351, 13);
            city.Name = "city";
            city.RowHeadersWidth = 51;
            city.Size = new Size(1118, 84);
            city.TabIndex = 6;
            // 
            // yesterday
            // 
            yesterday.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            yesterday.Location = new Point(27, 518);
            yesterday.Name = "yesterday";
            yesterday.RowHeadersWidth = 51;
            yesterday.Size = new Size(1442, 193);
            yesterday.TabIndex = 7;
            // 
            // Form1
            // 
            AutoScaleDimensions = new SizeF(9F, 20F);
            AutoScaleMode = AutoScaleMode.Font;
            BackColor = SystemColors.InactiveCaption;
            ClientSize = new Size(1481, 743);
            Controls.Add(yesterday);
            Controls.Add(city);
            Controls.Add(time);
            Controls.Add(label2);
            Controls.Add(date);
            Controls.Add(label1);
            Controls.Add(button1);
            Controls.Add(datas);
            MaximizeBox = false;
            MinimizeBox = false;
            Name = "Form1";
            Text = "天气预报";
            ((System.ComponentModel.ISupportInitialize)datas).EndInit();
            ((System.ComponentModel.ISupportInitialize)city).EndInit();
            ((System.ComponentModel.ISupportInitialize)yesterday).EndInit();
            ResumeLayout(false);
            PerformLayout();
        }

        #endregion

        private DataGridView datas;
        private Button button1;
        private Label label1;
        private TextBox date;
        private TextBox time;
        private Label label2;
        private DataGridView city;
        private DataGridView yesterday;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/722107.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

重学java 73.设计模式

本想送你一本沉思录&#xff0c;可该迷途知返的人是我 —— 24.6.18 设计模式 设计模式(Design pattern)&#xff0c;是一套被反复使用、经过分类编目的、代码设计经验的总结&#xff0c;使用设计模式是为了可重用代码、保证代码可靠性、程序的重用性,稳定性。 1995 年&#x…

贪心算法——赶作业(C++)

慢慢来&#xff0c;沉稳一点。 2024年6月18日 题目描述 A同学有n份作业要做&#xff0c;每份作业有一个最后期限&#xff0c;如果在最后期限后交作业就会扣分&#xff0c;现在假设完成每份作业都需要一天。A同学想安排作业顺序&#xff0c;把扣分降到最低&#xff0c;请帮他实…

注册安全分析报告:PingPong

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …

C语言中的内存动态管理

1.为什么有动态内存管理 int a20;//开辟4个字节 int arr[10]{0};//开辟40个字节 上述的代码有两个特点 1.开辟空间的大小是固定的。 2.数组在申明的时候已经固定了大小&#xff0c;无法更改。 这样写代码不够灵活&#xff0c;所以c语言中引入了动态内存管理&#xff0c;让程序…

uniapp使用md5加密

目录 一、安装md5 二、在main.js中全局引入并挂载到vue实例中 三、使用md5加密 一、安装md5 在终端输入 npm install js-md5 -D 二、在main.js中全局引入并挂载到vue实例中 import Md5 from js-md5 Vue.prototype.$md5 Md5 三、使用md5加密 let password_md5 this.$md…

在PHP项目中使用阿里云消息队列MQ集成RabbitMQ的完整指南与问题解决

在现代Web应用程序中&#xff0c;消息队列系统扮演着至关重要的角色&#xff0c;帮助开发者实现异步处理、削峰填谷、任务调度等功能。阿里云消息队列MQ作为一种高可用、可伸缩的消息队列服务&#xff0c;为开发者提供了可靠的消息投递和处理能力。而RabbitMQ则是一种广泛使用的…

GIS设计与开发课程设计(三)

环境&#xff1a;Windows10专业版 ArcGIS10.2 ArcEngine10.2 Visual Studio 2019 因每个人电脑版本和软件版本不同&#xff0c;运行的结果可能不同 系列文章&#xff1a; GIS设计与开发课程设计&#xff08;一&#xff09; GIS设计与开发课程设计&#xff08;二&#xff09;…

【机器学习300问】123、什么是GRU?GRU网络的基本结构是怎样的?

在之前的文章中&#xff0c;我们谈到了标准RNN所面临的诸多困境&#xff0c;你也可以理解为RNN的缺点。其中最让人苦恼的就是梯度消失问题&#xff0c;正是由于梯度消失问题的存在&#xff0c;导致RNN无法获得上下文的长期依赖信息。那么就没有办法解决了吗&#xff1f;非也&am…

深入解析纹理贴图——纹理压缩技术

by STANCH 标签&#xff1a;#纹理压缩 #纹理贴图 1.纹理压缩概述 3D计算机图形学离不开各种类型的纹理。纹理贴图可以极大地提高3D物体的视觉质量和细节水平,而不增加几何复杂度。简单的纹理是二维图像&#xff0c;该图像的单个像素称为纹素(texel)。事实上,纹理不仅可以存储…

chrome的插件怎么获取到安装包

问: chrome的插件怎么获取到安装包 回答: 在chrome浏览器输入: chrome://version/ 复制: 个人资料路径, 打开这个路径, 在文件中打开Extensions这个文件夹, 这个文件夹就是存放插件安装包的文件夹.

Mac 安装HomeBrew(亲测成功)

1、终端安装命令&#xff1a; /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"执行后&#xff0c;没有安装git&#xff0c;会先安装&#xff0c;安装后再执行一下命令。 2、根据中文选择源安装 3、相关命令 查看版本号&a…

Jmeter如何进行分布式测试

使用Jmeter进行性能测试时&#xff0c;有些同学问我如果并发数比较大(比如最近项目需要支持1000并发)&#xff0c;单台电脑的配置(CPU和内存)可能无法支持&#xff0c;怎么办就需要使用分布式压测 1.分布式原理&#xff1a; 1、Jmeter分布式测试时&#xff0c;选择其中一台作…

深度剖析ElasticSearch分页原理与深分页问题|ES深分页问题|ES分页原理剖析

文章目录 ES分页|Paginate search resultsES深分页的问题一页获取数据量太大&#xff0c;报错分页深度太大&#xff0c;报错官方解释 其他解决方案Search after解决两个问题 有没有深分页查询的必要性&#xff1f;search after & PIT的使用方式1.创建pit2.首次查询3.之后的…

Opencv高级图像处理

文章目录 Opencv高级图像处理图像坐标二值化滤波高斯滤波中值滤波 开闭运算检测霍夫圆检测边缘检测Canny边缘检测findContours区别傅里叶变换-高/低通滤波 直线检测 相机标定视频处理视频格式 模板摄像头处理&#xff08;带参调节&#xff09;单图片处理&#xff08;带参调节&a…

JAVA上门家政服务系统源码微信小程序+微信公众号+APP+H5

&#x1f3e0;家政服务系统&#xff1a;一键预约&#xff0c;轻松享受家居生活&#x1f389; 功能介绍 用户端&#xff1a;精准分类、支持家政、维修、万能服务、一口价、报价、线上、各类家政服务、优惠专区、师傅入驻、商家入驻、我的需求、补费明细、我的投诉 师傅端&…

基于Spring Boot+VUE旧物置换网站

1前台首页功能模块 旧物置换网站&#xff0c;在系统首页可以查看首页、旧物信息、网站公告、个人中心、后台管理等内容&#xff0c;如图1所示。 图1系统功能界面图 用户注册&#xff0c;在用户注册页面通过填写用户名、密码、姓名、性别、头像、手机、邮箱等内容进行用户注册&…

Linux 系统图像化编程GTK入门

环境前期准备 演示环境&#xff1a;Windows 11 Ubuntu 22.04.4 VS Code 前提条件&#xff1a;1、Windows 11 子系统Ubuntu 22.04.4 已经安装图形化界面&#xff0c;如果没有安装请参考文章&#xff1a; windows11子系统Ubuntu 22.04.4子安装图形化界面 2、Ubuntu 22.04.4…

小程序餐饮点餐系统,扫码下单点菜,消费端+配送端+收银端+理端

目录 前言&#xff1a; 一、小程序功能有哪些 前端&#xff1a; 管理端&#xff1a; 二、实体店做小程序的好处 方便快捷的点餐和支付体验&#xff1a; 扩大店铺的曝光度和影响力&#xff1a; 优化顾客体验和服务质量&#xff1a; 降低成本和提高效率&#xff1a; 数据…

iview 组件里面的(任何一个月)整月日期全部选中_iview时间轴选中有历史记录日期

iview 组件里面的整月日期全部选中&#xff1a; ①&#xff1a;第一种是当前月的日期全部选中&#xff1a; 先上效果图&#xff1a;当前月分 获取到的值&#xff1a; 当前月的方法&#xff1a; // getDateStr() {// var curDate new Date();// var curMonth curDate.ge…

K8s的资源对象

资源对象是 K8s 提供的一些管理和运行应用容器的各种对象和组件。 Pod 资源是 K8s 中的基本部署单元&#xff0c;K8s通过Pod来运行业务应用的容器镜像 Job 和 CronJob 资源用于执行任务和定时任务&#xff0c;DaemonSet 资源提供类似每个节点上守护进程&#xff0c; Deployment…