网络连接之———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#commentsHttpUtils是解决日常工作过程中繁杂的上传下载文件以及各种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; ………………
相关文章推荐
- fcntl使用 http://www.cnblogs.com/andtt/articles/2178875.html
- Android之网络通信Volley框架用法
- HTTP 协议中的 Content-Encoding 和 Transfer-Encoding(内容编码和传输编码)
- Maven的HTTP代理设置
- hdu5441(2015长春赛区网络赛1005)类最小生成树、并查集
- TCP/IP 相关总结
- 计算机网络概述
- OkHttp
- http://www.yesky.com/424/163424.shtml http://www.yesky.com/424/163424.shtml
- 【Linux网络编程】浅谈 C/S 和 B/S 架构
- Android网络连接汇总(代码篇)
- 【Linux网络编程】因特网的IP协议是不可靠无连接的,那为什么当初不直接把它设计为可靠的?
- 【Linux网络编程】无连接和面向连接协议的区别
- 【Linux网络编程】广播地址介绍
- LNMP系列——利用nginx 的http_image_filter_module 搭建图片网关
- HDU 5444&&长春网络赛1008 Elven Postman
- 【Linux网络编程】IP地址介绍
- C#_抓包HttpWebRequest跟HttpWebResponse
- VMware Workstation网络连接的三种模式
- TCP连接的参数设置