날씨 API 를 통 해 날씨 정 보 를 얻 는 방법

17450 단어 .notcore
날씨 데이터 가 져 오기 C \ #
HttpClient 를 이용 한 GetAsync 방법
  • http 요청 을 보 내 고 데 이 터 를 가 져 옵 니 다
  • class GetJson
        {
            //    
            private string APIStr = "http://t.weather.sojson.com/api/weather/city/101030100";
            public async Task<string> HttpGet()
            {
                //   url  
                Uri APIUri = new Uri(APIStr);
                //     json  
                string data = null;
                try
                {
                    using (HttpClient httpClient = new HttpClient())
                    {
                        //      
                        //httpClient.BaseAddress = APIUri;
                        //      
                        TimeSpan timeOut = new TimeSpan(0, 0, 30);
                        httpClient.Timeout = timeOut;
                        httpClient.DefaultRequestHeaders.Accept.Clear();
                        //      get  
                        data = await httpClient.GetStringAsync(APIUri);
                    }
                }//    
                catch(ArgumentOutOfRangeException e)
                {
                    return e.Message.ToString();
                }
                return data;
            }
        }
    
  • json 데이터 의 로 컬 대상 전환
  • json 을 처리 하 는 package: Newtonsoft. JSon
  • 도입
  • json 의 같은 데 이 터 를 포함 하 는 같은 속성 클래스 구축
  •  //      
    public class JsonInfo
    {
        public DateTime time { get; set; }
        public CityInfo cityinfo { get; set; }
        public string date { get; set; }
        public string message { get; set; }
        public string status { get; set; }
        public Data data { get; set; }
    }
    #region     
    //    
    public class CityInfo
    {
        public string city { get; set; }
        public string cityId { get; set; }
        public string parent { get; set; } 
        public string upadataTime { get; set; }
    }
    //    
    public class Data
    {
        public string shidu { get; set; }
        public string pm25 { get; set; }
        public string pm10 { get; set; }
        public string quality { get; set; }
        public string wendu { get; set; }
        public string ganmao { get; set; }
        public WeatherData yesterday { get; set; }
        public List<WeatherData> forecast { get; set; }
    
    }
    //    
    public class WeatherData
    {
       
        public string date { get; set; }
        public string sunrise { get; set; }
        public string high { get; set; }
        public string low { get; set; }
        //      
        public string aqi { get; set; }
        public DateTime ymd { get; set; }
        public string week { get; set; }
        //  
        public string fx { get; set; }
        //  
        public string fl { get; set; }
        //  
        public string type { get; set; }
        //  
        public string notice { get; set; }
    }
    #endregion
    
  • 대상 으로 전환:
  • public class JsonStrDel
    {
       
       public JsonInfo WeatherMessage;
       public void DataDel(string jsonMessage )
       {
           //    
           WeatherMessage=JsonConvert.DeserializeObject<JsonInfo>(jsonMessage);
       }
    }
    

    원본 코드 다운로드:https://github.com/xiaoxianrou8/GetPost

    좋은 웹페이지 즐겨찾기