知识点
相关文章
更多最近更新
更多微信公众平台整合百度天气API
2019-03-02 00:12|来源: 网路
由于自己闲着的时候写了一个微信公众平台的小应用 也参考了很多别人的源码 再此感谢那些被我参考过的大神们
本着开源的精神 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(); } //拼接url StringBuffer 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 block e.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里面的内容 然后返回到 微信公众平台
转自:http://my.oschina.net/bddiudiu/blog/262636
相关问答
更多-
微信公众平台 java模拟登录[2022-10-07]
先用抓包软件抓下登录时的数据包,然后 分析他用的是什么协议,然后 根据他的协议来写自己的程序,不过这个是一个比较大的工作量大事。不比抢票软件简单 -
微信公众平台能使用Java开发吗[2022-09-14]
能使用的!微信 在安卓手机里可以使用,安装是用java 开发的,所以 可以用java开发 -
微信公众平台开发有哪些要注意的?[2023-12-23]
微信公众平台开发注意事项: 一、微信公众平台开发是指为微信公众号进行业务开发,为移动应用、PC端网站、公众号第三方平台(为各行各业公众号运营者提供服务)的开发,请前往微信开放平台接入。 二、在申请到认证公众号之前,你可以先通过测试号申请系统,快速申请一个接口测试号,立即开始接口测试开发。 三、在开发过程中,可以使用接口调试工具来在线调试某些接口。 四、每个接口都有每日接口调用频次限制,可以在公众平台官网-开发者中心处查看具体频次。 五、在开发出现问题时,可以通过接口调用的返回码,以及报警排查指引(在公众平台 ... -
微信公众平台开发商排名靠前的有哪些个?[2022-06-23]
小猪cms还凑合,,有源码的 ,每周更新两三个模板的 ,你可以看下 ,, -
在新版的百度开发者中心怎么把微信公众平台搭建好,[2023-07-18]
1. 首先登录微信公众平台(http://mp.weixin.qq.com/),点击功能里面的高级功能 2. 点击开发模式 → 进入开发模式 3. 点击"成为开发者"按钮 4. 填写接口配置信息,此信息需要你拥有自己的服务器资源。(可以在微信第三方平台申请一个 比如 http://090wx.com/reg.html 这里申请一个) 5. 然后点击零九零平台功能就可以看到接口地址 和 TOKEN 6. 复制到上一步需要填写的地方点击提交就好了 7. 这里完成即可完成开发者模式的开启。 百度开发者中心是百 ... -
微信公众平台微网站开发流程是什么?[2023-08-07]
微网站开发模式教程: 第一步:申请消息接口 在公众平台网站的高级功能 – 开发模式页,点击“成为开发者”按钮,填写URL和Token,其中URL是开发者用来接收微信服务器数据的接口URL。Token可由开发者可以任意填写,用作生成签名。 第二步:验证URL有效性 开发者提交信息后,微信服务器将发送GET请求到填写的URL上,GET请求携带四个参数: 开发者通过检验signature对请求进行校验。若确认此次GET请求来自微信服务器,请原样返回 echostr参数内容,则接入生效,成为开发 ... -
微信公众平台服务号,同步关注人的微信信息到第三平台或者数据库[2022-01-06]
刚刚看错了 这个在原理上是可以实现的 但是电话号码除外 这个需要关注的人自己提供给公众号才行 -
微信公众号平台开发价格大概多少[2023-05-13]
这个需要根据你找什么样的开发商,然后开发什么样的功能,如果是该需要对接你们系统之类的功能比较复杂,有几千的,也有好几万的,这个看你的需求 -
请问,如何将多个微信公众平台进行整合?[2023-03-16]
运行Adobe Acrobat,单击工具“创建PDF”,在弹出菜单中的“来自文件”,“从多个文件”,“从网页”,“从扫描仪”等选项。选择“从多个文件”,会弹出“合并文件”对话框,在这里你可以添加多个源文件,你还可以添加包含源文件的批处理文件,还可以调整这些文件的优先级。这些源文件可以是PDF文件。 -
微信jssdk是怎么引入到公众平台里[2022-04-10]
登录你的微信平台,点击“公众号设置”。 点击“功能设置”,然后点击“设置”。 设置JS接口安全域名。这里填写的是一级域名,不带www和http。最多可以设置三个域名。设置完后点击确定。(多说一句,相比以前的分享没有任何域名限制,这里设置安全域名,目的是为了当发现此公众平台发现诱导分享行为时,可以根据此域名追溯到所有分享出去的链接,以及通过这些链接增加的粉丝。这样,微信就可以牢牢控制了你的微信平台,一旦发现违规,让分享链接失效,删除掉诱导行为增加的粉丝,是瞬间就可以完成的。因此,微信平台的开发者,一定要合理来 ...