微信公众号开发引入外部接口查询天气预报

Posted 黑质白章

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信公众号开发引入外部接口查询天气预报相关的知识,希望对你有一定的参考价值。

这里使用的"聚合数据",免费查询天气预报接口

   

首先进入聚合数据进行实名认证,申请相关接口数据,可以直接将示例的java代码copy下来。

我们唯一需要做的就是填写 appkey 和 接受请求参数 。

    // 配置申请的KEY

    public static final String APPKEY = "6d5b277db885b2df42672cb10c412345";

      

    // 1.根据城市查询天气

    public static String findWeather(String city) {

        String result = null;

        String url = "http://op.juhe.cn/onebox/weather/query";// 请求接口地址

        Map params = new HashMap();// 请求参数

        params.put("cityname",city );// 要查询的城市,如:温州、上海、北京

        params.put("key", APPKEY);// 应用APPKEY(应用详细页查询)

        params.put("dtype", "");// 返回数据的格式,xmljson,默认json

        String resp = "";

        try {

            result = MyUtil.net(url, params, "GET");

            JSONObject object = JSONObject.fromObject(result);

            if(!object.getString("reason").equals("查询成功!")){

                return resp = "请输入正确城市名";

            }

            JSONObject obj = object.getJSONObject("result")

                    .getJSONObject("data").getJSONObject("realtime");

            resp = "城市: " + obj.getString("city_name") + "\\n" + "阳历: "

                    + obj.getString("date") + "\\n" + "农历: "

                    + obj.getString("moon") + "\\n" + "气温:"

                    + obj.getJSONObject("weather").getString("temperature")+ "\\n天气状况:"

                    + obj.getJSONObject("weather").getString("info") + "\\n"

                    + "风向: " + obj.getJSONObject("wind").getString("direct")

                    + obj.getJSONObject("wind").getString("power");

            if (object.getInt("error_code") == 0) {

                System.out.println(object.get("result"));

            } else {

                System.out.println(object.get("error_code") + ":"

                        + object.get("reason"));

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

        return resp;

    }

   

利用JSONObject将返回的json字符串进行解析:

这个是将json字符串转化为json对象的一个方法,只能又JSONObject来调用

JSONObject object = JSONObject.fromObject(result);

同样,object.getJSONObject("")这个方法与上面方法意义相同,但是他是需要JSONObject对象来调用,而且可以叠加使用;

Object.getString("");通过属性得到一值…字符串格式。

以上是关于微信公众号开发引入外部接口查询天气预报的主要内容,如果未能解决你的问题,请参考以下文章

微信公众平台如何在开发模式下设置天气预报自动回复

公众号h5中使用微信JS-SDK(个人笔记)

微信h5页面分享之多个页面一个公众号

微信公众号开发之如何使用JSSDK

微信公众号开发 ----------- 接口测试号

公众号推送早安问候以及天气预报(JAVA)