访问
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);
好的,感激不尽
你好,反馈已收到,正在定位问题,有结果会在之前的帖子回复,请耐心等待哈
你好,非常感激你为我的问题耐心寻找答案。现在的情况是我们项目21号就提测了,我还不知道这到底怎么回事儿,能不能20号给我一个回复呢。再次感谢!
你好,麻烦你再提供下请求时间的json格式,还有小程序的appid,请求时间请确认是否是如下格式:
你好,如果是格式不对的话,接口应该会直接报错吧。但我这边没收到返回错误信息。
我收到的是这个:{"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);
}
你好,确认你选择的日期当天是有用户返回数据的吗?
你好,确认你选择的日期当天是有用户访问数据的吗?