当前位置:首页 > Windows程序 > 正文

比如北京是: https://www.metaweather.com/api/location/search/?quer

2024-03-31 Windows程序

第一步,新建控制台应用措施,然后新建类:WeatherReport:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class WeatherReport { public string date { get; set; } public long temp { get; set; } public string text { get; set; } } }

第二步,要获取需要的都市的woeid(where on earch id),好比北京是:

https://www.metaweather.com/api/location/search/?query=beijing

技术分享图片

第三步编写Program类:

技术分享图片

woeid在Program类顶用的到,URL地点(可复制到浏览器中检察格局内容):

https://query.yahooapis.com/v1/public/yql?q=select%20item%20from%20weather.forecast%20where%20woeid%20in%20(2151330%20)&format=json

using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { HttpClient client = new HttpClient(); client.BaseAddress = new Uri("https://query.yahooapis.com/v1/public/yql?q=select%20item%20from%20weather.forecast%20where%20woeid%20in%20(2151330%20)&format=json"); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); GetWeather(client).Wait(); } static async Task GetWeather(HttpClient cons) { using (cons) { HttpResponseMessage res = await cons.GetAsync(""); res.EnsureSuccessStatusCode(); if (res.IsSuccessStatusCode) { string weather = await res.Content.ReadAsStringAsync(); JObject jobj = JObject.Parse(weather); JToken jToken = jobj.First; string WeatherState = jToken.First["results"]["channel"]["item"]["condition"].ToString(); WeatherReport report = Newtonsoft.Json.JsonConvert.DeserializeObject<WeatherReport>(WeatherState); Console.WriteLine("\n"); Console.WriteLine("Weather Station: Beijing"); Console.WriteLine("Temperature Details"); Console.WriteLine("-----------------------------------------------------------"); Console.WriteLine("Temperature (in deg. C): " + (report.temp - 32) * 0.55);// Converted from Fahrenheit to Celsius Console.WriteLine("Weather State: " + report.text); Console.WriteLine("Applicable Time: " + report.date); Console.ReadLine(); } } } } }

运行功效:

技术分享图片

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/34984.html

Jm-杰米博客Jamie
草根站长的技术交流乐园!IT不会不要紧快来好好学习吧!
  • 20786文章总数
  • 7494590访问次数
  • 建站天数
  • 友情链接