微信百度天气查询
来源:互联网 发布:奥巴马医改利弊 知乎 编辑:程序博客网 时间:2024/04/30 22:21
想在微信上做个天气预报查询功能,发现百度api还挺好用的。简单介绍下
/** * WxDaoImpl * * @author xuyw * @email xyw10000@163.com * @date 2014-06-22 */
接口说明
根据经纬度/城市名查询天气的结果
接口示例
接口参数说明
返回结果
返回xml格式的数据
返回json格式的数据
/** * 获取天气 * @param city * @return */public static JSONObject getWeatherInfo(String city) {JSONObject obj = JSONObject.fromObject(HttpUtil.getRequest(GET_WEATHER_URL, "location:" + city, "output:json", "ak:"+ Config.BAIDU_GEOCONV_KEY));return obj;}
返回结果
{"error":0,"status":"success","date":"2014-06-23","results":[{"currentCity":"乐平","weather_data":[{"date":"周一 06月23日 (实时:25℃)","dayPictureUrl":"http://api.map.baidu.com/images/weather/day/zhenyu.png","nightPictureUrl":"http://api.map.baidu.com/images/weather/night/zhenyu.png","weather":"阵雨","wind":"微风","temperature":"26 ~ 22℃"},{"date":"周二","dayPictureUrl":"http://api.map.baidu.com/images/weather/day/zhenyu.png","nightPictureUrl":"http://api.map.baidu.com/images/weather/night/zhenyu.png","weather":"阵雨","wind":"微风","temperature":"25 ~ 22℃"},{"date":"周三","dayPictureUrl":"http://api.map.baidu.com/images/weather/day/zhenyu.png","nightPictureUrl":"http://api.map.baidu.com/images/weather/night/leizhenyu.png","weather":"阵雨转雷阵雨","wind":"微风","temperature":"27 ~ 23℃"},{"date":"周四","dayPictureUrl":"http://api.map.baidu.com/images/weather/day/leizhenyu.png","nightPictureUrl":"http://api.map.baidu.com/images/weather/night/zhenyu.png","weather":"雷阵雨转阵雨","wind":"微风","temperature":"29 ~ 23℃"}]}]}
将结果转换为微信多图文
/** * 获取天气 * * @param map * @return */public String getWeather(Map map) {String message=null;String openid = map.get("FromUserName") + "";String toUserName = map.get("ToUserName") + "";String city = map.get("city") + "";JSONObject obj = BaiduUtil.getWeatherInfo(city);String status = obj.getString("status");if("success".equals(status)){//查找到了JSONArray jarray=obj.getJSONArray("results");int size=jarray.size();if(size>0){JSONObject j2=jarray.getJSONObject(0);JSONArray jarray2=j2.getJSONArray("weather_data");List<Article> articleList = new ArrayList<Article>();// 创建图文消息NewsMessage newsMessage = new NewsMessage();newsMessage.setToUserName(openid);newsMessage.setFromUserName(toUserName);newsMessage.setCreateTime(new Date().getTime());newsMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_NEWS);newsMessage.setFuncFlag(0);int size2=jarray2.size();for (int i = 0; i < jarray2.size(); i++) {JSONObject j3=jarray2.getJSONObject(i);String date=j3.getString("date");String weather=j3.getString("weather");String wind=j3.getString("wind");String temperature=j3.getString("temperature");String title="";String img_url=j3.getString("dayPictureUrl");if(i==0){title=date+" "+weather+" "+wind;}else{title=date+" "+weather+" "+temperature+" "+wind;}Article article = new Article();article.setTitle(title);article.setDescription("");article.setPicUrl(img_url);article.setUrl("http://blog.csdn.net/xuyw10000");articleList.add(article);}newsMessage.setArticleCount(size2);newsMessage.setArticles(articleList);message = MessageUtil.newsMessageToXml(newsMessage);}else{map.put("xuywMsg", "啊噢,找不到“"+city+"”的天气。");message=sendTextMessage(map);}}else{//无结果map.put("xuywMsg", "啊噢,这个地方百度都找不到。");message=sendTextMessage(map);}return message;}
结果
<xml> <ToUserName><![CDATA[sadsdaewwaewea]]></ToUserName> <FromUserName><![CDATA[bbbbb]]></FromUserName> <CreateTime><![CDATA[1403495665819]]></CreateTime> <MsgType><![CDATA[news]]></MsgType> <FuncFlag><![CDATA[0]]></FuncFlag> <ArticleCount><![CDATA[4]]></ArticleCount> <Articles> <item> <Title><![CDATA[周一 06月23日 (实时:25℃) 阵雨 微风]]></Title> <Description><![CDATA[]]></Description> <PicUrl><![CDATA[http://api.map.baidu.com/images/weather/day/zhenyu.png]]></PicUrl> <Url><![CDATA[http://blog.csdn.net/xuyw10000]]></Url> </item> <item> <Title><![CDATA[周二 阵雨 25 ~ 22℃ 微风]]></Title> <Description><![CDATA[]]></Description> <PicUrl><![CDATA[http://api.map.baidu.com/images/weather/day/zhenyu.png]]></PicUrl> <Url><![CDATA[http://blog.csdn.net/xuyw10000]]></Url> </item> <item> <Title><![CDATA[周三 阵雨转雷阵雨 27 ~ 23℃ 微风]]></Title> <Description><![CDATA[]]></Description> <PicUrl><![CDATA[http://api.map.baidu.com/images/weather/day/zhenyu.png]]></PicUrl> <Url><![CDATA[http://blog.csdn.net/xuyw10000]]></Url> </item> <item> <Title><![CDATA[周四 雷阵雨转阵雨 29 ~ 23℃ 微风]]></Title> <Description><![CDATA[]]></Description> <PicUrl><![CDATA[http://api.map.baidu.com/images/weather/day/leizhenyu.png]]></PicUrl> <Url><![CDATA[http://blog.csdn.net/xuyw10000]]></Url> </item> </Articles></xml>HttpUtil 见 http://blog.csdn.net/xuyw10000/article/details/33342489
部署sae后运行
7 0
- 微信百度天气查询
- php调用百度天气接口,微信实时查看天气
- PHP微信开发---城市天气查询
- 【转】百度api查询天气
- 微信公众平台开发之天气查询功能
- 微信公众平台开发--天气查询和发送
- 微信公众号python开发——天气查询
- 微信公众平台 天气查询功能 api调用
- 微信程序开发---实现天气状态查询
- 微信公众号开发-输入城市查询天气
- 微信天气环境质量
- 微信公众平台天气查询,火车票查询,快递查询,小黄鸡,翻译,公交查询的实现
- 微信公众平台天气查询,火车票查询,快递查询,小黄鸡,翻译,公交查询的实现
- 本市天气(百度定位与车联网之天气查询)
- Python调用百度API之天气查询
- java调用百度天气查询API
- 微信开发(二)天气
- 微信公众平台消息接口开发(11)地理位置查询 当地天气及附近商家
- const拾遗
- 编程日志:精通struts2
- IOS详解TableView——性能优化及手工绘制UITableViewCell
- android 媒体库数据更新解决办法总结
- 幸福本就简单
- 微信百度天气查询
- C#中方法Show和ShowDialog的使用区别
- android 修改 system 目录下的文件
- android锁屏软件制作
- Java程序员的10道XML面试题
- 快速更新MAGENT产品价格
- SQL Server中的窗口函数
- 黑马程序员--反射的理解应用
- unity3d优化IOS