起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3781|回复: 3

[处理中3] 获取百度天气报错

[复制链接]

197

主题

834

帖子

1511

积分

金牌会员

Rank: 6Rank: 6

积分
1511
QQ
发表于 2017-12-20 16:25:56 | 显示全部楼层 |阅读模式
后台
        /**
         * 获取百度天气
         *
         * @param ak
         *            应用AK
         * @param city
         *            城市
         */
        public static JSONObject getWeather(String ak, String city) {
                JSONObject json = new JSONObject();
                OkHttpClient okHttpClient = new OkHttpClient();
                String httpUrl = "http://apis.baidu.com/heweather/weather/free";
                String result = null;
                httpUrl = httpUrl + "?city=" + city;

                try {
                        MediaType JSON = MediaType.parse("application/json; charset=utf-8");
                        RequestBody body = RequestBody.create(JSON, "");
                        Request request = new Request.Builder().url(httpUrl).header("Authorization", ak).post(body).build();
                        Call call = okHttpClient.newCall(request);
                        Response response = call.execute();
                        result = response.body().string();
                        json.put("result", result);
                } catch (Exception e) {
                        e.printStackTrace();
                }
                return json;
        }

前台
Model.prototype.mainDataAfterNew = function(event) {
                var param = new biz.Request.ActionParam();
                param.setString("ak", "bGs0564S3Bh4vtGCNUaoaW1OnRkvyj3r");
                param.setString("city", "北京");
                biz.Request.sendBizRequest({
                        "context" : this.getContext(),
                        "action" : "getWeatherAction",
                        "parameters" : param,
                        "callback" : function(data) {
                                if (data.state) {
                                        var result = JSON.parse(data.response)["HeWeather data service 3.0"][0];
                                        if (result.status == "ok") {
                                                alert("城市:" + result.basic.cnty + " " + result.basic.city);
                                                alert("污染程度:" + result.aqi.city.qlty);
                                                alert("PM2.5:" + result.aqi.city.pm25);
                                                alert("天气情况:" + result.now.cond.txt);
                                                alert("温度:" + result.now.tmp + "℃");
                                                alert("风向:" + result.now.wind.sc + result.now.wind.dir + "    风速:" + result.now.wind.spd + "kmph");
                                        }
                                }
                        }
                })
        };

报错如下:::::
2017-12-20 16:21:10 excute stream action, params:{"accept":"application/json","action":"getWeatherAction","actionFlag":"__action_0__","activity":"mainActivity","contentType":"json","executeContext":"","executor":"","parameters":{"ak":"bGs0564S3Bh4vtGCNUaoaW1OnRkvyj3r","city":"北京"},"process":"/PM/SM/process/constLogQuery/constLogQueryProcess"}
com.justep.exception.BusinessException: 编码: JUSTEP150087; 提示: 不支持数据类型"{"result":"{\"errNum\":300202,\"errMsg\":\"Missing apikey\"}"}", class "class org.json.JSONObject"
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.transform.ResultTransform.transformByJson(Unknown Source)
        at com.justep.system.transform.ResultTransform.transform(Unknown Source)
        at com.justep.system.transform.ResponseTransform.transform(Unknown Source)
        at com.justep.system.action.Engine.translateResult(Unknown Source)
        at com.justep.system.action.Engine.invokeActions(Native Method)
        at com.justep.system.action.Engine.invokeActions(Unknown Source)
        at com.justep.business.server.BusinessServer.doAction(Unknown Source)
        at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
该怎么解决

------回复内容仅供参考

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36183
发表于 2017-12-20 16:34:55 | 显示全部楼层
action的返回类型没有JSONObject,可以直接用Object
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

197

主题

834

帖子

1511

积分

金牌会员

Rank: 6Rank: 6

积分
1511
QQ
 楼主| 发表于 2017-12-20 16:39:42 | 显示全部楼层
jishuang 发表于 2017-12-20 16:34
action的返回类型没有JSONObject,可以直接用Object

前台用哪种方式解析json呢
------回复内容仅供参考
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36183
发表于 2017-12-20 17:16:40 | 显示全部楼层
参考/UI2/demo/actions/process/invokeAction/mainActivity.w中的获取返回的数据然后js标准的方式解析就可以
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-1 11:00 , Processed in 0.082507 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表