您的位置:首页 > 理论基础 > 计算机网络

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

2015-09-14 20:01 525 查看
由上一篇的介绍,我们已经知道了,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;
 ………………
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: