200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 控制台调用天气API例子

控制台调用天气API例子

时间:2023-07-25 09:18:26

相关推荐

控制台调用天气API例子

第一步,新建控制台应用程序,然后新建类: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),比如北京是:

/api/location/search/?query=beijing

第三步编写Program类:

woeid在Program类中用的到,URL地址(可复制到浏览器中查看格式内容):

/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 .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("/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 .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();}}} }}

运行结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。