百度统计接口调用第二步,获取当前账户下的站点列表,在上一篇文章我们已经成功登录百度统计,获取到ucid,本文我们将通过udic获取sitelist,也就是站点列表
/**
* 获取当前用户下的站点列表
* @param user
* @return
* @author shy
* @date 2016-11-16 下午01:00:29
*/
public static List getSiteList(WebsiteUser user){
Gson gson = new Gson();
AuthHeader header = new AuthHeader();
header.setUsername(user.getUserName());
header.setToken(user.getToken());
header.setPassword(user.getPassword());
header.setAccount_type(1);
ApiRequest request = new ApiRequest();
request.setHeader(header);
String json = gson.toJson(request);
String result = HttpClientUtils.doPost(user.getUcid(),AppConstans.GET_SITE_LIST, json.getBytes(), 15000, "utf-8");
//System.out.println(result);
ApiResponse resp = gson.fromJson(result, new TypeToken(){}.getType());
//目前百度返回的信息结构为 body/data/list[],但是api文档中说明data下仅有一个list,所以只需要返回一个第一个list中集合即可
if(null != resp && null != resp.getHeader() && null != resp.getHeader().getSucc() && resp.getHeader().getSucc()>0){
return resp.getBody().getData().get(0).getList();
}
return null;
}
其中AonConstans.GET_SITE_LIST 为百度统计接口地址:
"https://api.baidu.com/json/tongji/v1/ReportService/getSiteList";
result就是获取到的站点列表json串,我们可以根据自己的习惯使用json工具进行解析,本文使用的是Gson
{"header":{"desc":"success","failures":[],"oprs":1,"succ":1,"oprtime":0,"quota":1,"rquota":49784,"status":0},"body":{"data":[{"list":[{"status":0,"create_time":"2016-09-08 16:42:49","domain":"lighta2z.com","site_id":9776968,"sub_dir_list":[]},{"status":0,"create_time":"2016-12-22 14:20:56","domain":"fgxb.org","site_id":10228307,"sub_dir_list":[]}]}]}}
public static void main(String[] args) {
WebsiteUser user = new WebsiteUser();
user.setUserName("*****");
user.setPassword("*****");
user.setToken("*****");
Gson gson = new Gson();
DoLoginResponse loginResult = doLogin(user);
//获取ucid st
System.out.println("ucid:"+loginResult.getUcid());
System.out.println("st:"+loginResult.getSt());
//**********获取站点列表
user.setUcid(String.valueOf(loginResult.getUcid()));
List list = getSiteList(user);
System.out.println(list.size());
}
相关工具类
登录获取ucid请参考