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相关推荐

  1. 微信公众号接入百度天气API接口

    接口功能介绍 基础服务 http://api.map.baidu.com/weather/v1/?district_id=222405&data_type=all&ak=你的ak // ...

  2. ASP.NET MVC5微信公众平台整合开发实战教程

    <ASP.NET MVC5&微信公众平台整合开发实战(响应式布局.JQuery Mobile,Windows Azure.微信核心开发)> 课程讲师:57Code 课程分类:ASP ...

  3. 微信公众平台自定义菜单接口API指南

    微信公众平台开发模式自定义菜单接口API指南 开发实现方法,请查看 微信公众平台开发(58)自定义菜单 简介 开发者获取使用凭证(如何获取凭证)后,可以使用该凭证对公众账号的自定义菜单进行创建.查询和 ...

  4. 微信公众平台开发:JS API支付

    本文介绍微信支付下的jsapi实现流程 前言 微信支付现在分为v2版和v3版,2014年9月10号之前申请的为v2版,之后申请的为v3版.V3版的微信支付没有paySignKey参数.v2的相关介绍请 ...

  5. 微信公众平台二次开发 API开发 服务账号开发 订阅号开发

    移动互联网时代已经到来,微信已经有6亿多的用户,是移动端最大的入口.微网站,微商城建设,提供定制化服务,根据客户需求开发.客户很方便就能了解到公司的所有信息和最新动态,随时随地都可以跟公司进行互动,增 ...

  6. 一怒之下做了个基于微信公众平台结合百度地图的查公交应用!轻量!方便!快捷!

    关于查公交说多了都是泪,一些原生的移动应用不是一堆广告病毒就是过于庞大(好几个G的地图应用),什么都别说了,看图.想体验的同学请关于博主的微信公众平台微信号: webworking 或 扫下面二维码进 ...

  7. 微信公众平台使用百度API查询天气预报

    先去百度申请API,后就可以根据API来查询未来3天的天气预报 private void ResponseMsg(string weixinXML){XmlDocument doc = new Xml ...

  8. 微信公众平台与百度轻应用使用对比

    现在的移动应用无非这么几种:APP.WEB.微信公众帐号.轻应用. APP:有三种实现方式,原生.HTML5.混合.混合也就是原生+HTML5.原生工作量太大,各种手机系统适配,android.ios ...

  9. 微信公众平台上可以使用的API接口

    001. 天气预报 [20130901] city:城市名,传递时须做urlencode http://api100.duapp.com/weather/?appkey=trialuser&c ...

最新文章

  1. mysql server远程连接_MySql server:开放mysql远程连接
  2. 产生随机数的几种方法
  3. MFC窗口位置和大小的获取
  4. 当Windows Vista提示“内存不足”……
  5. 如何在线把网站html生成xml文件_Sitemap在线生成器,网站地图在线生成工具
  6. requireJS对文件合并与压缩(二)
  7. 可以让你少奋斗10年的工作经验
  8. 卖萌屋原创专辑首发,算法镇魂三部曲!
  9. 围观神龙架构首次开箱,现场直播暴力拆机
  10. 将之前写完的猜数字游戏改为通过javabean_【沃德英语】好玩的单词游戏
  11. python 哪些项目_一份2018年Python开源项目Top100清单!
  12. 牛客国庆集训派对Day2: E. 数据排序(状压DP+记忆化搜索)
  13. Ubuntu使用记录:安装deb软件方法以及apt、apt-get和dpkg的区别
  14. VMware Ubuntu虚拟机卡顿慢 解决方法大全
  15. python制作无限弹窗_Python无限弹窗,开机启动,打包为exe程序
  16. weblogic12c补丁安装
  17. jQuery菜鸟学习实例
  18. 华为的倔强和悲壮,Nova9不支持5G却比对手更贵
  19. 微信摇一摇抽奖的H5制作思路
  20. STM32开发入门及实战

热门文章

  1. 桂电信科17级c语言期末试卷,桂电期末考试Linux习题总结
  2. CATIA工程图转AUTO CAD设置详解
  3. CC2640R2F学习笔记(三.电源管理:API介绍)
  4. nfs挂载不上,指定版本挂载
  5. 2022年高教社杯国赛A题思路——波浪能最大输出功率设计
  6. 适合前端学习的设计模式有哪些?
  7. 以太坊 智能合约(六)
  8. 2、用Kettle生成日期维度数据(一)使用kettle生成2019年日期文件保存到hive表中
  9. 在 Linux 上比较文件的聪明方法
  10. 我常用的网络测试工具