位置: 编程技术 - 正文
推荐整理分享关于中国天气(Weather.com.cn)的查询(关于中国天气的新闻报道),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:关于中国天气科学的谚语,关于中国天气的传说,关于中国天气的新闻报道,关于中国天气,地貌地形的描述,关于中国天气的传说,关于中国天气的传说,关于中国天气的介绍,关于中国天气的英语作文50字,内容如对您有帮助,希望把文章链接给更多的朋友!
这两天看了下如何获取天气预报,写篇文章总结下:
Weather.com有如下三个Json式的查询接口,以北京为例:
(国家代号)(省) (二级地区) (三级地区)
其中前面三位国家代号是固定的,无需获取。关键是获取后面三级地区编码代号。要获取所有的地区代码,可以通过如下地址获取:
访问
classCityInfo { public string Name { get;private set; } public string Id { get;private set; } private CityInfo() //这个对象不能被外部创建 { } public override string ToString() { return string.Format("[{0}, {1}]", Name, Id); } static HttpClient httpClient = newHttpClient(); async Task<CityInfo[]> GetSubCitiesAsync() { var requestUrl = string.Format(" Id); var result = await httpClient.GetStringAsync(requestUrl); var cityInfo = from city in result.Split(',') let data = city.Split('|') selectnew CityInfo() { Id = data[0], Name = data[1] }; return cityInfo.ToArray(); } static async Task<IEnumerable<CityInfo>> GetSubCitiesAsync(IEnumerable<CityInfo> cities) { var tasks = cities.Select(i => i.GetSubCitiesAsync()); await Task.WhenAll(tasks); return tasks.Select(i => i.Result).SelectMany(i => i); } public static asyncTask<IEnumerable<CityInfo>> GetAllCitiesAsync() { var root = new CityInfo(); //空对象为0级对象 var level1Cities =await root.GetSubCitiesAsync(); var level2Cities =await GetSubCitiesAsync(level1Cities); var level3Cities =await GetSubCitiesAsync(level2Cities); return level3Cities; } }
这个类使用非常简单,它就只有一个接口GetAllCitiesAsync(),通过它可以返回所有三级城市的ID。
foreach (var itemin awaitCityInfo.GetAllCitiesAsync()) { Console.WriteLine(item); }
由于获取速度主要依赖于网络,我这里的逻辑做得比较简单,并没有刻意追求最高效率。简单的试了下,大概s左右能返回结果,总共有个城市,这么看来网上的那份城市ID列表是不全的。
关于城市列表,我这里就不贴了,有需要的自己把我上面的代码运行一下即可(需要.net 4.5环境)。
Android In <declare-styleable> MenuView, unable to find attribute android:preserveIconSpacing Indeclare-styleableMenuView,unabletofindattributeandroid:preserveIconSpacing升级sdk版本之后出现的问题两个解决方案1:Searchandroid:preserveIconSpacing在V7包attrs中找到删除2:M
Android getTopActivity的方法 使用如下方法可以获得topactivity的namepublicStringgetTopActivityPackageName(Contextcontext){StringtopActivityPackage=null;ActivityManageractivityManager=(ActivityManager)(context.getSystemSe
AndroidAnnotations 自定义控件 ant编译 找不到类 问题:今天使用jenkins+ant编译android项目,一直编译不通过,报错内容就是,自定义控件找不到类。确认了几次svn提交,项目代码完全提交,所以想到是
标签: 关于中国天气的新闻报道
本文链接地址:https://www.jiuchutong.com/biancheng/374403.html 转载请保留说明!上一篇:Android如何修改app不在多任务列表中显示(修改安卓app权限教程)
下一篇:Android In <declare-styleable> MenuView, unable to find attribute android:preserveIconSpacing
友情链接: 武汉网站建设