2、发送异步网络请求
AsyncBaseRequest asyncHttpsPost = new AsyncHttpsPost(url, parameter, new ParseCallback() {
@Override
public Object parse(String json) throws JSONException {
LogUtil.i("EveryoneActivity", "json = " + json);
return null;
}
}, new ResultCallback() {
@Override
public void onSuccess(Object obj) {
}
@Override
public void onFail(int errorCode) {
// TODO Auto-generated method stub
}
});
mDefaultThreadPool.execute(asyncHttpsPost);
mAsyncRequests.add(asyncHttpsPost);
3、网络请求返回的JSON
[
{
"uid":461345584,
"tinyurl":"http://hdn.xnimg.cn/photos/hdn521/20130319/1930/h_tiny_zggz_8829000002e6113e.jpg",
"vip":1,
"sex":1,
"name":"逐鹿。。。",
"star":1,
"headurl":"http://hdn.xnimg.cn/photos/hdn521/20130319/1930/h_head_jbdD_8829000002e6113e.jpg",
"zidou":0
}
]
4、对JSON进行解析(这里我们要自己一个字段一个字段的去解吗?不用,我给大家推荐使用谷歌GSON去进行解析。不知道的可以到网上搜下GSON,下载一个jar包导入工程就可以了。)
new ParseCallback() {
@Override
public Object parse(String json) throws JSONException {
LogUtil.i("EveryoneActivity", "json = " + json);
Gson gson = new Gson();
java.lang.reflect.Type type = new TypeToken<LinkedList<UserBasicInfo>>(){}.getType();
LinkedList<UserBasicInfo> userList = gson.fromJson(json, type);
return userList.get(0);
}
}
5、将解析后的结果返回
new ResultCallback() {
@Override
public void onSuccess(Object obj) {
UserBasicInfo userBasic = (UserBasicInfo)obj;
LogUtil.i("EveryoneActivity", "userBasic = " + userBasic.toString());
}
@Override
public void onFail(int errorCode) {
// TODO Auto-generated method stub
}
}
三、发送网络请求,并解析返回结果的完整代码如下:
mAuthTokenManager = new AuthTokenManager(this);
String accessToken = mAuthTokenManager.getAccessToken();
LogUtil.e("EveryoneActivity", "accessToken = " + accessToken);
// 获取用户信息所需的参数
String url = "https://api.renren.com/restserver.do";
Map<String, String> parameter = new HashMap<String, String>();
parameter.put("v", "1.0"); // API的版本号,固定值为1.0
parameter.put("access_token", accessToken); // OAuth2.0验证授权后获得的token。
parameter.put("format", "JSON"); // 返回值的格式。请指定为JSON或者XML,推荐使用JSON,缺省值为XML
parameter.put("call_id", "1.0"); // 请求队列号
parameter.put("method", "users.getInfo"); // 你要访问那个接口,我们肯定调用用获取用户的信息的接口咯,该接口支持批量获取。
AsyncBaseRequest asyncHttpsPost = new AsyncHttpsPost(url, parameter, new ParseCallback() {
@Override
public Object parse(String json) throws JSONException {
LogUtil.i("EveryoneActivity", "json = " + json);
Gson gson = new Gson();
java.lang.reflect.Type type = new TypeToken<LinkedList<UserBasicInfo>>() {
}.getType();
LinkedList<UserBasicInfo> userList = gson.fromJson(json, type);
return userList.get(0);
}
}, new ResultCallback() {
@Override
public void onSuccess(Object obj) {
UserBasicInfo userBasic = (UserBasicInfo) obj;
LogUtil.i("EveryoneActivity", "userBasic = " + userBasic.toString());
}
@Override
public void onFail(int errorCode) {
// TODO Auto-generated method stub
}
});
mDefaultThreadPool.execute(asyncHttpsPost);
mAsyncRequests.add(asyncHttpsPost);
附带:用户基本信息实体类
package com.everyone.android.entity;
/**
* 功能描述:用户基本信息实体类
* @author android_ls
*
*/
public class UserBasicInfo {
private int uid; // 用户id
private String tinyurl; // 头像链接 50*50大小
private int sex; // 性别,值1表示男性;值0表示女性
private String name; // 用户名
private int star; // 是否为星级用户,值“1”表示“是”;值“0”表示“不是”
private String headurl; // 头像链接 100*100大小
private int zidou; // 是否为vip用户,值1表示是;值0表示不是
private int vip; // 是否为vip用户等级,前提是zidou节点必须为1
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getTinyurl() {
return tinyurl;
}
public void setTinyurl(String tinyurl) {
this.tinyurl = tinyurl;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getStar() {
return star;
}
public void setStar(int star) {
this.star = star;
}
public String getHeadurl() {
return headurl;
}
public void setHeadurl(String headurl) {
this.headurl = headurl;
}
public int getZidou() {
return zidou;
}
public void setZidou(int zidou) {
this.zidou = zidou;
}
public int getVip() {
return vip;
}
public void setVip(int vip) {
this.vip = vip;
}
@Override
public String toString() {
return "UserBasicInfo [uid=" + uid + ", tinyurl=" + tinyurl + ", sex=" + sex + ", name=" + name + ", star=" + star + ", headurl="
+ headurl + ", zidou=" + zidou + ", vip=" + vip + "]";
}
### 学习分享
在当下这个信息共享的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了
很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘
如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。
**2021最新上万页的大厂面试真题**
![](https://img-blog.csdnimg.cn/img_convert/50177c1657edbd198adcdb82e59fa84f.webp?x-oss-process=image/format,png)
**七大模块学习资料:如NDK模块开发、Android框架体系架构…**
![](https://img-blog.csdnimg.cn/img_convert/53b47e20d1877e5ac859f7626180f98a.webp?x-oss-process=image/format,png)
只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。
> 这份体系学习笔记,适应人群:
> **第一,**学习知识比较碎片化,没有合理的学习路线与进阶方向。
> **第二,**开发几年,不知道如何进阶更进一步,比较迷茫。
> **第三,**到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。
### 由于文章内容比较多,篇幅不允许,部分未展示内容以截图方式展示 。
参考docs.qq.com/doc/DSkNLaERkbnFoS0ZF
个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘
如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。
**2021最新上万页的大厂面试真题**
[外链图片转存中...(img-CHSD5u0a-1724495377565)]
**七大模块学习资料:如NDK模块开发、Android框架体系架构…**
[外链图片转存中...(img-vKzOjplE-1724495377566)]
只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。
> 这份体系学习笔记,适应人群:
> **第一,**学习知识比较碎片化,没有合理的学习路线与进阶方向。
> **第二,**开发几年,不知道如何进阶更进一步,比较迷茫。
> **第三,**到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。
### 由于文章内容比较多,篇幅不允许,部分未展示内容以截图方式展示 。
参考docs.qq.com/doc/DSkNLaERkbnFoS0ZF