TIME:2020年7月6日

:1、获取天气信息

  • 和风天气API使用方法:
  • step1 申请天气接口
  • step2 天气接口初始化
  • step3 选择服务模式
  • step4 通过URL请求数据
  • step5解析JSON数据
  • 附上源码:

和风天气API使用方法:

1、申请天气接口
2、天气接口账号初始化
3、选择服务模式,免费还是商业版
4、通过URL请求数据(get和post方式)并接收数据
5、解析JSON数据

step1 申请天气接口

天气接口申请

step2 天气接口初始化

HeConfig.init(publicId,key);

step3 选择服务模式

 //切换到免费服务模式HeConfig.switchToFreeServerNode();

step4 通过URL请求数据

private void queryWeather() {new Thread() {@Overridepublic void run() {String param = "key=07a717828d9f49169062e88e66d50697&location=auto_ip";StringBuilder sb = new StringBuilder();InputStream is = null;BufferedReader br = null;PrintWriter out = null;try {String url =  "https://free-api.heweather.net/s6/weather";URL uri = new URL(url);HttpURLConnection connection = (HttpURLConnection) uri.openConnection();//开启一个url的连接,用HttpURLConnection连接方式处理connection.setRequestMethod("POST");//设置连接对象的请求数据的方式connection.setConnectTimeout(3000);//设置连接对象的请求超时的时间connection.setReadTimeout(5000);//设置读超时connection.setRequestProperty("accept", "*/*");//发送参数connection.setDoOutput(true);out = new PrintWriter(connection.getOutputStream());out.print(param);Log.e("param",param);out.flush();//接收结果is = connection.getInputStream();br = new BufferedReader(new InputStreamReader(is, "UTF-8"));//缓冲逐行读取String line;while ( ( line = br.readLine() ) != null ) {sb.append(line);}queryWeather2();Log.e("success","tmp:" + sb.toString());} catch (Exception ignored) {} finally {//关闭流try {if(is!=null){is.close();}if(br!=null){br.close();}if (out!=null){out.close();}} catch ( Exception ignored ) {}}}}.start();}

step5解析JSON数据

以实况天气为例

    public void queryWeather2() {/*** 实况天气* 实况天气即为当前时间点的天气状况以及温湿风压等气象指数,具体包含的数据:体感温度、* 实测温度、天气状况、风力、风速、风向、相对湿度、大气压强、降水量、能见度等。** @param context  上下文* @param location 地址详解* @param lang     多语言,默认为简体中文,海外城市默认为英文* @param unit     单位选择,公制(m)或英制(i),默认为公制单位* @param listener 网络访问回调接口*/HeWeather.getWeatherNow(Weather.this, "CN101080101",Lang.CHINESE_SIMPLIFIED, Unit.METRIC, new HeWeather.OnResultWeatherNowBeanListener() {@Overridepublic void onError(Throwable e) {Log.i(TAG, "Weather Now onError: ", e);}@Overridepublic void onSuccess(Now dataObject) {Log.i(TAG, " Weather Now onSuccess: " + new Gson().toJson(dataObject));//先判断返回的status是否正确,当status正确时获取数据,若status不正确,可查看status对应的Code值找到原因if (Code.OK.getCode().equalsIgnoreCase(dataObject.getStatus())) {//此时返回数据Basic basic = dataObject.getBasic();String location = basic.getLocation();NowBase now = dataObject.getNow();String tmp = now.getTmp();Intent intent = new Intent();intent.putExtra("tmp", tmp);intent.setAction("number_tmp");sendBroadcast(intent);} else {//在此查看返回数据失败的原因String status = dataObject.getStatus();Code code = Code.toEnum(status);Log.i(TAG, "failed code: " + code);}}});}

附上源码:

下载地址

Android开发之和风天气篇:1、获取天气信息相关推荐

  1. android开发JNI之高级篇

    android开发JNI之高级篇 一,JNI介绍 百度百科 : http://baike.baidu.com/view/1272329.htm 二,JNI开发教程 1,JNI注册方式有两种,一种是静态 ...

  2. 想拿 20k 无压力?Android开发必读的一篇文章!

    程序员分很多种类和等级,如果要提高达到20k的概率 有两个条件如果满足的话,则很容易达到 1.一线城市:北上广深杭 2.互联网行业 如果你非得抬杠,我要在三线城市,做外包要赚20k的话,很难,我自己也 ...

  3. Android开发之高德API篇:2、高德API线路规划

    TIME:2020年7月6日 2.高德API线路规划----步行线路规划 前言: step1 工程配置 step2 整体实现过程 step3 具体实现过程 总结 附上源码 前言: 该篇博客主要是介绍高 ...

  4. Android开发 亲测可用--多种方式获取手机短信验证码自动填入

    Android开发 静态注册.动态注册.短信中心库监控获取手机验证码,自动复制到剪切板或或填入输入框. 友情提醒初学者:这是广播接收器的类,写在xml中静态注册或写在启动类的Oncreate方法下动态 ...

  5. Android开发艺术探索完结篇——天道酬勤

    这片文章发布,代表着我已经把本书和看完并且笔记也发布完成了,回忆了一下我看Android群英传,只用了两个月,但是看本书却花了2016年05月04日 - 2018年07月16日,整整两年多,真是惭愧 ...

  6. Android开发——本地存储、用户权限获取

    Android的逻辑存储结构有三种 内部存储结构 Internal Private Storage 外部私有存储结构 External Private Storage 外部公有存储结构 Externa ...

  7. python获取天气数据_python获取天气数据

    三.具体实现 """ =================================== -*- coding:utf-8 -*- Author :GadyPu E_ ...

  8. 用JS通过新浪天气API接口获取天气

    先上代码 从代码中可以看到js是从http://php.weather.sina.com.cn/iframe/index/w_cl.php?code=js&day=0&city=&am ...

  9. python通过调用百度天气API接口获取天气信息

    python调用百度接口,获取天气信息 需要到百度注册开发者账号,通过账号获取到每个账号私有的应用访问(AK) 使用此脚本还需要district_id.csv文档,在我资源中可以免费下载,也可在百度天 ...

最新文章

  1. 2018 年将打响 AI 战争,7 条实战经验帮你战胜恐惧
  2. git/github 生成密钥
  3. Flask框架 之abort、自定义错误、视图函数返回值与jsonify
  4. Docker(五):Docker 三剑客之 Docker Machine
  5. html文本长度不一样的对齐,关于html:文本在中间不对齐
  6. python的模块和类_Python模块和类.md
  7. 记一次对某企业的渗透测试实战
  8. 如何用Linux的命令正确识别cpu的个数和核数
  9. java download oracle,Oracle Java Products Download
  10. 在使用模板时遇到的错误,TypeError at /index/ context must be a dict rather than RequestContext(亲测)
  11. 三十四 操作文件和目录
  12. IBM小型机没有显卡,用串口登录需要修改tty,加clocal参数
  13. JS代码对表格进行新增时无法解析HTML代码的解决方式
  14. 批量复制或提取CAD中的说明文字为表格
  15. 第四轮学科评估计算机专业排名,第四轮学科评估
  16. GoogleEarth的安装与使用
  17. 树莓派之火焰传感器模块
  18. macos 打开终端弹出:(eval):export:1: not valid in this context: Fusion.app/Contents/Public
  19. 创建mysql数据库快照_sql语句大全之创建数据库快照
  20. 无人驾驶学习---第一课

热门文章

  1. 来啦~ C++学习建议和学习资料
  2. CSS裸奔节,一个被遗忘的前端节日!
  3. python globals() 动态函数调用_[Python] 动态函数调用(通过函数名)
  4. 乌班图linux怎么连手机热点,使用Ubuntu12.04创建无线WiFi热点供手机上网
  5. 罗莎琳德·富兰克林:隐于幕后的DNA之母,以及她被误解却又伟大的短暂一生...
  6. 轻松使用终端开启macOS系统的隐藏功能,小白都能看得懂
  7. mysql主从代替技术_mysql主从复制及失败切换
  8. wifi 信道_Win10电脑找不到自家Wifi无线网络解决方法 可能是无线信道问题
  9. f分布表完整图a=0.05_2019年05月16日,沪深A股股票分析
  10. 服务器 centos 系统漏洞快速修复简易方法