查看天气

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 WeatherReport
{
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();
WeatherInfo report = Newtonsoft.Json.JsonConvert.DeserializeObject<WeatherInfo>(WeatherState);
Console.WriteLine("\n");

Console.WriteLine("Weather Station: Beijing");
Console.WriteLine("Temperature Details");
Console.WriteLine("-----------------------------------------------------------");
Console.WriteLine("温度(C): " + (report.temp - 32) * 0.55);// Converted from Fahrenheit to Celsius 
Console.WriteLine("天气状态: " + report.text);
Console.WriteLine("时间: " + report.date);
Console.ReadLine();
}
}
}
}

public class WeatherInfo
{
public string date { get; set; }

public long temp { get; set; }

public string text { get; set; }


}
}

 

posted @ 2018-04-19 16:32  smodi  阅读(183)  评论(0编辑  收藏  举报