Android仿人人客户端(v5

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
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值