收藏
回答

访问分析接口返回为空

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug https://api.weixin.qq.com/datacube/getweanalysisappiddailyvisittrend?access_token=ACCESS_TOKEN 工具 6.6.7 2.0.0

访问

https://api.weixin.qq.com/datacube/getweanalysisappiddailyvisittrend?access_token=ACCESS_TOKEN

预期返回的数据为

{  "list": [
    {      "ref_date": "20170313",      "session_cnt": 142549,      "visit_pv": 472351,      "visit_uv": 55500,      "visit_uv_new": 5464,      "stay_time_session": 0,      "visit_depth": 1.9838
    }
  ]
}

我这边实际返回

{"list":[]}


代码如下:

  public String testPvApi() throws Exception {

//先获取token

        String url = ConstantUtil.ACCESS_TOKEN_URL+"&"+"appid="+ConstantUtil.APPID+"&"+"secret="+ConstantUtil.SECRET;

        String result = HttpUtils.get(url);

        JsonObject fromJson = JsonUtils.fromJson(result, JsonObject.class);

        //System.out.println(result);

        String accessToken = fromJson.get("access_token").getAsString();

        System.out.println("newToken: " + accessToken);

        RedisManager.set(ConstantUtil.ACCESS_TOKEN, accessToken, ConstantUtil.ACCESS_TOKEN_EXPIRE_TIME);

        System.out.println(RedisManager.get(ConstantUtil.ACCESS_TOKEN));

       // String accessToken = RedisManager.get(ConstantUtil.ACCESS_TOKEN);

//日访问数据的url

        String dayUrl = ConstantUtil.DAY_STATISTICS_URL+accessToken;

        JSONObject jsonObject = new JSONObject();

        long now = DateUtil.dateToZeroTimeStamp(new Date());

        long yesterday = now - 60 * 60;


//获得时间格式为20180612的昨日时间


        String yesStr = DateUtil.getDays(yesterday);

        jsonObject.put("begin_date", yesStr);

        jsonObject.put("end_date", yesStr);


//查询昨日的数据

        String dayStatics = PostJsonUtil.getJsonData(jsonObject, dayUrl);

        System.out.println(dayStatics);



回答关注问题邀请回答
收藏

2 个回答

  • 左眼是S
    左眼是S
    2018-06-15

    好的,感激不尽

    2018-06-15
    有用
    回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2018-06-15

    你好,反馈已收到,正在定位问题,有结果会在之前的帖子回复,请耐心等待哈

    2018-06-15
    有用
    回复 8
    • 左眼是S
      左眼是S
      2018-06-19

      你好,非常感激你为我的问题耐心寻找答案。现在的情况是我们项目21号就提测了,我还不知道这到底怎么回事儿,能不能20号给我一个回复呢。再次感谢!

      2018-06-19
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2018-06-20回复左眼是S

      你好,麻烦你再提供下请求时间的json格式,还有小程序的appid,请求时间请确认是否是如下格式:

      2018-06-20
      回复
    • 左眼是S
      左眼是S
      2018-06-20回复疯狂的小辣椒

      你好,如果是格式不对的话,接口应该会直接报错吧。但我这边没收到返回错误信息。

      我收到的是这个:{"list":[]}。(请求的具体代码见下方)


      appid是:wx7e6559eff0691ff7


      实施请求类中的代码:

      JSONObject jsonObject = new JSONObject();

              long now = DateUtil.dateToZeroTimeStamp(new Date());

              long yesterday = now - 60 * 60;

              //获得昨日时间的"20180101"格式

              String yesStr = DateUtil.getDays(yesterday);

              jsonObject.put("begin_date", yesStr);

              jsonObject.put("end_date", yesStr);

              String dayStatics = PostJsonUtil.getJsonData(jsonObject, dayUrl);



      请求的工具类:

      import java.io.BufferedReader;

      import java.io.DataOutputStream;

      import java.io.InputStream;

      import java.io.InputStreamReader;

      import java.io.OutputStream;

      import java.net.HttpURLConnection;

      import java.net.URL;


      import com.alibaba.fastjson.JSONObject;


      public class PostJsonUtil {

          public static String getJsonData(JSONObject jsonParam,String urls) {  

              StringBuffer sb=new StringBuffer();  

              try {  

                  ;  

                  // 创建url资源  

                  URL url = new URL(urls);  

                  // 建立http连接  

                  HttpURLConnection conn = (HttpURLConnection) url.openConnection();  

                  // 设置允许输出  

                  conn.setDoOutput(true);  

                              // 设置允许输入  

                              conn.setDoInput(true);  

                             // 设置不用缓存  

                             conn.setUseCaches(false);  

                             // 设置传递方式  

                             conn.setRequestMethod("POST");  

                             // 设置维持长连接  

                              conn.setRequestProperty("Connection", "Keep-Alive");  

                             // 设置文件字符集:  

                             conn.setRequestProperty("Charset", "UTF-8");  

                             // 转换为字节数组  

                             byte[] data = (jsonParam.toString()).getBytes();  

                            // 设置文件长度  

                             conn.setRequestProperty("Content-Length", String.valueOf(data.length));  

                            // 设置文件类型:  

                            conn.setRequestProperty("contentType", "application/json");  

                              // 开始连接请求  

                             conn.connect();        

                          OutputStream out = new DataOutputStream(conn.getOutputStream()) ;  

                  // 写入请求的字符串  

                  out.write((jsonParam.toString()).getBytes());  

                  out.flush();  

                  out.close();  

        

                 // System.out.println(conn.getResponseCode());  

                  // 请求返回的状态  

                  if (HttpURLConnection.HTTP_OK == conn.getResponseCode()){  

                     // System.out.println("连接成功");  

                      // 请求返回的数据  

                      InputStream in1 = conn.getInputStream();  

                      try {  

                            String readLine=new String();  

                            BufferedReader responseReader=new BufferedReader(new InputStreamReader(in1,"UTF-8"));  

                            while((readLine=responseReader.readLine())!=null){  

                              sb.append(readLine).append("\n");  

                            }  

                            responseReader.close();  

                           // System.out.println(sb.toString());  

                            

                      } catch (Exception e1) {  

                          e1.printStackTrace();  

                      }  

                  } 

                 

              } catch (Exception e) {  

                  e.printStackTrace();

              }  

                

              return sb.toString();  

        

          }  

      }


      日期工具类中:

      /**

           * 获取指定时间戳日期(零点)的YYYYMMDD格式

           * 

           * @return

           */

          public static String getDays(Long time) {

              Date date = new Date(time*1000);

              return sdfDays.format(date);

          }


      2018-06-20
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2018-06-20回复左眼是S

      你好,确认你选择的日期当天是有用户返回数据的吗?

      2018-06-20
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2018-06-20回复左眼是S

      你好,确认你选择的日期当天是有用户访问数据的吗?

      2018-06-20
      回复
    查看更多(3)
登录 后发表内容