微信公众平台整合百度天气API
2019独角兽企业重金招聘Python工程师标准>>>
由于自己闲着的时候写了一个微信公众平台的小应用 也参考了很多别人的源码 再此感谢那些被我参考过的大神们
本着开源的精神 http://git.oschina.net/bddiudiu/wechat_Spring 我的项目也开源了 大部分都是参考了 智云同学的项目
项目目前部署与新浪SEA 访问地址 http://diuwx.sinaapp.com
好了 不多说微信的这个项目 我们来讲一下 如何整合百度的API一起进来 顺便也给自己日后留下一些痕迹
首先我们查看百度车联网的API页面 我们找到我们需要的天气接口 同时我们也申请一个ak key 具体申请KEY这里就不说了
得到KEY 以及 api的url和各种参数 我们开始将百度的天气接口整合进我们的项目
百度的这个接口,我们要在项目中模拟一次http提交.
既然这样 那我们就看一下他的url提交地址
http://api.map.baidu.com/telematics/v3/weather?location=北京&output=json&ak=yourkey
看一下地址我们就会看出来,这个url需要拼接3个参数.
location 我们需要查询的城市
output 返回给我们的数据格式
ak 我们的 ak key
当然他还有别的参数 我们这里暂时不用.
好 知道了url之后我们在项目中新建一个工具类 我们就叫他baiduutil.java
然后我们新建3个参数
private static String api = "http://api.map.baidu.com/telematics/v3/weather?";
private static String output = "json";
private static String ak = "your key";
然后 我们写一个方法 就是向百度提交url
public static String getSend(String str){//将传进来的城市转码try {str = URLEncoder.encode(str, "utf-8");} catch (Exception e) {e.printStackTrace();}//拼接urlStringBuffer buf = new StringBuffer();buf.append("location=");buf.append(str);buf.append("&output=");buf.append(output);buf.append("&ak=");buf.append(ak);String param = buf.toString();//这是接收百度API返回的内容String result = "";String urlName = api + param;URL realUrl;try {realUrl = new URL(urlName);// 打开和URL之间的连接URLConnection conn = realUrl.openConnection();conn.setDoInput(true);BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line = br.readLine();while (line != null) {result += line;line = br.readLine();}br.close();return result; } catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}
以上的代码将会返回来一段json数据.当然如果你的output是xml你得到的就是xml格式的.
下面我们就需要解析这返回来的json数据
{"error":0,"status":"success","date":"2014-05-09","results":[{"currentCity":"\u5317\u4eac","weather_data":[{"date":"\u5468\u4e94(\u4eca\u5929, \u5b9e\u65f6\uff1a19\u2103)","dayPictureUrl":"http:\/\/api.map.baidu.com\/images\/weather\/day\/yin.png","nightPictureUrl":"http:\/\/api.map.baidu.com\/images\/weather\/night\/yin.png","weather":"\u9634","wind":"\u5fae\u98ce","temperature":"20 ~ 14\u2103"},{"date":"\u5468\u516d","dayPictureUrl":"http:\/\/api.map.baidu.com\/images\/weather\/day\/zhenyu.png","nightPictureUrl":"http:\/\/api.map.baidu.com\/images\/weather\/night\/xiaoyu.png","weather":"\u9635\u96e8\u8f6c\u5c0f\u96e8","wind":"\u5fae\u98ce","temperature":"19 ~ 11\u2103"},{"date":"\u5468\u65e5","dayPictureUrl":"http:\/\/api.map.baidu.com\/images\/weather\/day\/xiaoyu.png","nightPictureUrl":"http:\/\/api.map.baidu.com\/images\/weather\/night\/qing.png","weather":"\u5c0f\u96e8\u8f6c\u6674","wind":"\u5fae\u98ce","temperature":"19 ~ 10\u2103"},{"date":"\u5468\u4e00","dayPictureUrl":"http:\/\/api.map.baidu.com\/images\/weather\/day\/qing.png","nightPictureUrl":"http:\/\/api.map.baidu.com\/images\/weather\/night\/qing.png","weather":"\u6674","wind":"\u5fae\u98ce","temperature":"28 ~ 14\u2103"}]}]
}
以上就是百度返回给我们的json格式.
我们使用Gson来解析.
首先新建3个类
class Status{private String error;private String status;private String date;private List<Results> results;
}class Results{private String currentCity;private List<Weather> weather_data;
}class Weather{private String date;private String dayPictureUrl;private String nightPictureUrl;private String weather;private String wind;private String temperature;
}
并生成get/set方法.
然后 我们使用Gson来解析 传进来的JSON字符串是 json
Gson gson = new Gson();
Status status = gson.fromJson(json, Status.class);
然后下面就是自己去获取 status里面的内容 然后返回到 微信公众平台
转载于:https://my.oschina.net/bddiudiu/blog/262636
微信公众平台整合百度天气API相关推荐
- 微信公众号接入百度天气API接口
接口功能介绍 基础服务 http://api.map.baidu.com/weather/v1/?district_id=222405&data_type=all&ak=你的ak // ...
- ASP.NET MVC5微信公众平台整合开发实战教程
<ASP.NET MVC5&微信公众平台整合开发实战(响应式布局.JQuery Mobile,Windows Azure.微信核心开发)> 课程讲师:57Code 课程分类:ASP ...
- 微信公众平台自定义菜单接口API指南
微信公众平台开发模式自定义菜单接口API指南 开发实现方法,请查看 微信公众平台开发(58)自定义菜单 简介 开发者获取使用凭证(如何获取凭证)后,可以使用该凭证对公众账号的自定义菜单进行创建.查询和 ...
- 微信公众平台开发:JS API支付
本文介绍微信支付下的jsapi实现流程 前言 微信支付现在分为v2版和v3版,2014年9月10号之前申请的为v2版,之后申请的为v3版.V3版的微信支付没有paySignKey参数.v2的相关介绍请 ...
- 微信公众平台二次开发 API开发 服务账号开发 订阅号开发
移动互联网时代已经到来,微信已经有6亿多的用户,是移动端最大的入口.微网站,微商城建设,提供定制化服务,根据客户需求开发.客户很方便就能了解到公司的所有信息和最新动态,随时随地都可以跟公司进行互动,增 ...
- 一怒之下做了个基于微信公众平台结合百度地图的查公交应用!轻量!方便!快捷!
关于查公交说多了都是泪,一些原生的移动应用不是一堆广告病毒就是过于庞大(好几个G的地图应用),什么都别说了,看图.想体验的同学请关于博主的微信公众平台微信号: webworking 或 扫下面二维码进 ...
- 微信公众平台使用百度API查询天气预报
先去百度申请API,后就可以根据API来查询未来3天的天气预报 private void ResponseMsg(string weixinXML){XmlDocument doc = new Xml ...
- 微信公众平台与百度轻应用使用对比
现在的移动应用无非这么几种:APP.WEB.微信公众帐号.轻应用. APP:有三种实现方式,原生.HTML5.混合.混合也就是原生+HTML5.原生工作量太大,各种手机系统适配,android.ios ...
- 微信公众平台上可以使用的API接口
001. 天气预报 [20130901] city:城市名,传递时须做urlencode http://api100.duapp.com/weather/?appkey=trialuser&c ...
最新文章
- mysql server远程连接_MySql server:开放mysql远程连接
- 产生随机数的几种方法
- MFC窗口位置和大小的获取
- 当Windows Vista提示“内存不足”……
- 如何在线把网站html生成xml文件_Sitemap在线生成器,网站地图在线生成工具
- requireJS对文件合并与压缩(二)
- 可以让你少奋斗10年的工作经验
- 卖萌屋原创专辑首发,算法镇魂三部曲!
- 围观神龙架构首次开箱,现场直播暴力拆机
- 将之前写完的猜数字游戏改为通过javabean_【沃德英语】好玩的单词游戏
- python 哪些项目_一份2018年Python开源项目Top100清单!
- 牛客国庆集训派对Day2: E. 数据排序(状压DP+记忆化搜索)
- Ubuntu使用记录:安装deb软件方法以及apt、apt-get和dpkg的区别
- VMware Ubuntu虚拟机卡顿慢 解决方法大全
- python制作无限弹窗_Python无限弹窗,开机启动,打包为exe程序
- weblogic12c补丁安装
- jQuery菜鸟学习实例
- 华为的倔强和悲壮,Nova9不支持5G却比对手更贵
- 微信摇一摇抽奖的H5制作思路
- STM32开发入门及实战