网络连接之———xUtils框架 介绍(二)

    由上一篇的介绍,我们已经知道了,xUtils中有四大组件可以供我们使用,分别是ViewUtils、HttpUtils、BitmapUtils以及DbUtils。
    如果你没能先读一下我的[上篇文章](http://blog.csdn.net/womengmengyan/article/details/48441299),那么请你移步过去先整体了解一下,再回过头来看这篇文章,相信你回更有体会的。

这里我们分别来介绍这四大组件:

一、HttpUtils

参考:http://blog.csdn.net/lanyeming2012/article/details/14209455#comments
HttpUtils是解决日常工作过程中繁杂的上传下载文件以及各种Get和post请求的必备工具类,这里仅介绍它的两个请求的方式HttpGet和HttPost方法。如果想要了解利用xUtils来下载文件和上传文件,请查看上面的网址,那位大神整理的相当全了哈。

HttpGet请求:

1.下载xUtils包:
只要使用xUtils框架,都需要导xUtils包,这里的导包和之前的volley导包是一样的,这里不再详细介绍。
2.获得HttpUtils对象
这里写图片描述
3.利用send方法发出请求

client.send(HttpRequest.HttpMethod.GET, "http://www.360.com", new RequestCallBack<String>() {
                    //连接成功时调用
                    @Override
                    public void onSuccess(ResponseInfo<String> responseInfo) {
                        mTextviewResponse.setText(responseInfo.result);
                    }

                    //连接失败时调用
                    @Override
                    public void onFailure(HttpException e, String s) {
                        Toast.makeText(getApplicationContext(), "连接失败", Toast.LENGTH_SHORT).show();

                    }
                });

send方法,传入三个参数,分别是:请求方式;url地址;new请求返回的实例。最后一个参数需要重写方法onSuccess,在请求成功后调用这个方法。而其中的responseInfo.result可以返回服务器的返回信息

实例:

这里写图片描述

延伸:利用RequestParams带参数

通常的HttpGet请求会把一系列的请求参数挂在请求地址的后面,拖出一节长长的尾巴,十分的惹人厌,这里可以通过像HttpPost请求的参数那样组成一个类似BasicNameValuePair的对象直接封装到请求方法中去,省去拼接url的麻烦,同时也可以设置超时时间。
这里写图片描述

HttpPost请求:

httpPost的用法和httpGet的用法是一样的,这里仅用一个实例展示一下,不再介绍。

 HttpUtils clientPost = new HttpUtils();//获得对象
                //send方法进行连接
                RequestParams parames = new RequestParams();
                parames.addBodyParameter("username", "zhangsanyaya");

                clientPost.send(HttpRequest.HttpMethod.POST,"http://192.168.0.30:8080/MyWebTest/MyTestServerlet",parames, new RequestCallBack<String>() {
                    //连接成功时调用
                    @Override
                    public void onSuccess(ResponseInfo<String> responseInfo) {
                        mTextviewResponse.setText(responseInfo.result);
                    }

                    //连接失败时调用
                    @Override
                    public void onFailure(HttpException e, String s) {
                        Toast.makeText(getApplicationContext(), "连接失败", Toast.LENGTH_SHORT).show();

                    }
                });

二、ViewUtils

下面是一个大神的链接哈,大神讲的已经够详细,不过我再啰嗦一点。
参考:http://blog.csdn.net/lanyeming2012/article/details/14043685

ViewUtils可以完全使用注解的方式来完成UI的绑定和事件绑定。这样我们省去了findViewById这一步或者setonclickListener(this),当代码非常多时,我们会发现它的优势。

UI的绑定:@ViewInject

这里写图片描述
在定义UI控件之前加上注解@ViewInject(),传入参数是UI布局中的控件的id,这样省去了之后的findViewById,但不要忘了ViewUtils.inject(this)将UI与activity中定义的控件绑定。

事件的绑定:@OnClick

@OnClick({R.id.buttonxutilPost,R.id.buttonxutil})//注意位置,是在oncreate外面,onclick之前

使用@onClick,省去了setonclickListener(this)的使用,只需要将所有需要添加点击事件的按钮,添加到参数列表中,注意多个按钮时,需要将所有按钮id用花括号{ }括起来。

实例参考:

public class XUtilActivity extends Activity implements View.OnClickListener {
    @ViewInject(R.id.buttonxutil)//1.加注解,其中是布局中的实例
    private Button mButtonxUtil;
    @ViewInject(R.id.buttonxutilPost)
    private Button mButtonxutilPost;
    @ViewInject(R.id.textviewResponse)
    private TextView mTextviewResponse;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_xutil);
        ViewUtils.inject(this);//2.遍历注解,将注解中的实例findview添加到它定义的属性中


      //  mButtonxUtil.setOnClickListener(this);
       // mButtonxutilPost.setOnClickListener(this);
    }
    @OnClick({R.id.buttonxutilPost,R.id.buttonxutil})//注意位置,是在oncreate外面,onclick之前
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.buttonxutil:
            ……
            break;
 ………………
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值