zoukankan      html  css  js  c++  java
  • 调用天气Api实现天气查询

    上面是简单截图:

    前台代码:

    @{
        Layout = null;
    }
    
    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
        <style>
            #dvShow{
                800px;
                margin:0px auto;
                background-color:#F5FAFE;
            }      
        </style>
    </head>
    <body>
        <input type="button" value="点击查看天气情况" id="btn1"/>
        <div id="dvShow">
            
        </div>
    </body>
    </html>
    <script src="~/Content/jquery.min.js"></script>
    <script>
        $(function () {
            $("#btn1").click(function () {
            $.getJSON('@Url.Action("Index2", "Home")',null,function(_data){
                var recwhether = _data.whether;
                var recindexdata = _data.indexdata;            
                for (var i = 0; i < recwhether.length; i++) {
                    $("<p>" + recwhether[i].date + "</p><p><img src=" + recwhether[i].dayPictureUrl + "/></p><p><img src=" + recwhether[i].nightPictureUrl + "/></p><p>" + recwhether[i].weather + "</p><p>" + recwhether[i].wind + "</p><p>" + recwhether[i].temperature + "</p><p>" + recindexdata[i].title + "</p><p>" + recindexdata[i].zs + "</p><p>" + recindexdata[i].tipt + "</p><p>" + recindexdata[i].des + "</p><hr/>").appendTo("#dvShow");
                }
            });
    
            });
        });
    </script>

    后台代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net.Http;
    using System.Web;
    using System.Web.Mvc;
    using System.Web.Script.Serialization;
    using System.Xml;
    using System.Xml.Linq;
    using WebAPITest.Models;
    
    namespace WebAPITest.Controllers
    {
        public class HomeController : Controller
        {
            //
            // GET: /Home/
    
            public ActionResult Index()
            {
                return View();
            }
           
            public ActionResult Index2()
            {
    
                //获取接口数据
                HttpClient client = new HttpClient();
    
                string result = client.GetAsync("http://api.map.baidu.com/telematics/v3/weather?location=%E5%8C%97%E4%BA%AC&output=xml&ak=A72e372de05e63c8740b2622d0ed8ab1").Result.Content.ReadAsStringAsync().Result;
                //写入XML文档
                XmlDocument dom = new XmlDocument();
                dom.LoadXml(result);
                dom.Save(HttpContext.Request.MapPath("/Files/XML/show.xml"));
                //读取XML文档            
    
                 XDocument XDoc2 = XDocument.Load(HttpContext.Request.MapPath("/Files/XML/show.xml"));
                 //获取根节点
                 XElement Root = XDoc2.Root;
                 XElement xresults=Root.Element("results");
                 XElement xcurrentCity=xresults.Element("currentCity");
                 string cityStr = xcurrentCity.Value;
                 //输出根节点的Name,Value
                 string str1= Root.Name.ToString();//输出:北京
                 XElement xweather_data=xresults.Element("weather_data");             
                IEnumerable<XElement> xdate = xweather_data.Elements("date");          
                List<string> dateList = new List<string>();
                foreach (var item in xdate) //获得data集合
                {
                    dateList.Add(item.Value);                
                }          
                IEnumerable<XElement> xdayPictureUrl = xweather_data.Elements("dayPictureUrl");
                List<string> dayPictureUrlList = new List<string>();//获得dayPictureUrl集合
                foreach (var item in xdayPictureUrl)
                {
                    dayPictureUrlList.Add(item.Value);
                }
                 IEnumerable<XElement> xnightPictureUrl = xweather_data.Elements("nightPictureUrl");
                 List<string> nightPictureUrlList = new List<string>();//获得nightPictureUrl集合
                 foreach (var item in xnightPictureUrl)
                 {
                     nightPictureUrlList.Add(item.Value);
                 }
                 List<string> weatherList = new List<string>();//获得weather集合
                 IEnumerable<XElement> xweather = xweather_data.Elements("weather");
                 foreach (var item in xweather)
                 {
                     weatherList.Add(item.Value);
                 }
                 List<string> windList = new List<string>();//获得wind集合
                 IEnumerable<XElement> xwind = xweather_data.Elements("wind");
                 foreach (var item in xwind)
                 {
                     windList.Add(item.Value);
                 }
                 List<string> temperatureList = new List<string>();//获得temperature集合
                IEnumerable<XElement> xtemperature = xweather_data.Elements("temperature");
                foreach (var item in xtemperature)
                {
                    temperatureList.Add(item.Value);
                }
                List<BaiDuWheter> whteherDataList = new List<BaiDuWheter>();
                for (int i = 0; i < dateList.Count; i++)//将所有天气遍历追加到一起
                {
                    BaiDuWheter bw = new BaiDuWheter();
                    bw.date = dateList[i];
                    bw.dayPictureUrl = dayPictureUrlList[i];
                    bw.nightPictureUrl = nightPictureUrlList[i];
                    bw.weather = weatherList[i];
                    bw.wind = windList[i];
                    bw.temperature = temperatureList[i];
                    whteherDataList.Add(bw);
                }
                XElement index = xresults.Element("index");
                IEnumerable<XElement> xtitle=index.Elements("title");
                List<string> titleList = new List<string>();
                foreach (var item in xtitle)
                {
                    titleList.Add(item.Value);
                }
                IEnumerable<XElement> xzs = index.Elements("zs");
                List<string> zsList = new List<string>();
                foreach (var item in xzs)
                {
                    zsList.Add(item.Value);
                }
                IEnumerable<XElement> xtipt = index.Elements("tipt");
                List<string> tiptList = new List<string>();
                foreach (var item in xtipt)
                {
                    tiptList.Add(item.Value);
                }
                IEnumerable<XElement> xdes = index.Elements("des");
                List<string> desList = new List<string>();
                foreach (var item in xdes)
                {
                    desList.Add(item.Value);
                }
                List<IndexData> indexList = new List<IndexData>();
                for (int i = 0; i < titleList.Count; i++)//将所有的穿衣信息遍历整合到一起
                {
                    IndexData data = new IndexData();
                    data.title = titleList[i];
                    data.zs = zsList[i];
                    data.tipt = tiptList[i];
                    data.des = desList[i];
                    indexList.Add(data);
                }
                XElement pm25= xresults.Element("pm25");
                string pm25Str = pm25.Value;//计算书PM2.5的值
                XElement nowdata= Root.Element("date");
                string nowDataStr = nowdata.Value;//计算出现在的日期
                var sendData = new { whether=whteherDataList,indexdata=indexList};
                return Json(sendData, JsonRequestBehavior.AllowGet);
               
            }
        }
    }
    View Code

    Model类代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace WebAPITest.Models
    {
        public class BaiDuWheter
        {
            public string date { get; set; }
            public string dayPictureUrl { get; set; }
            public string nightPictureUrl { get; set; }
            public string weather { get; set; }
            public string wind { get; set; }
            public string temperature { get; set; }
        }
        public class IndexData
        {
            public string title { get; set; }
            public string zs { get; set; }
            public string tipt { get; set; }
            public string des { get; set; }
        }
    }
    View Code
  • 相关阅读:
    14.3 Go iris
    14.2 Go性能优化
    14.1 Go数据结构
    13.3 Go章节练习题
    13.2 Go练习题答案
    13.1 Go练习题
    12.1 Go nsq
    11.3 Go 开发博客
    11.2Go gin
    11.1 Go Http
  • 原文地址:https://www.cnblogs.com/shuai7boy/p/5687194.html
Copyright © 2011-2022 走看看