一个强大的Android应用肯定会需要网络技术作为支持,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据。Android系统中主要提供了两种方式来进行HTTP通信,HttpURLConnection和HttpClient。但这两种方式使用有点复杂,都需要对其进行一定成都的封装。下面就介绍一下Google 官方推荐的volley,其对HTTP的通信操作进了封装,简化了Android应用的Http通信,非常适合去进行数据量不大,但通信频繁的网络操作
。但volley对于大数据量的网络操作,比如说下载文件等则有些捉襟见肘。
volley的工程配置
进入volley官方https://github.com/mcxiaoke/android-volley github的资源进行下载。android studio使用者也可以通过配置Gradlecompile 'com.mcxiaoke.volley:library:1.0.19'
导入。volley用法三步骤
一、获取请求队列
二、创建请求
三、将请求加入请求队列StringRequest的简单用法
//1.获取到RequestQueue对象
RequestQueue mQueue = Volley.newRequestQueue(mContext);
//2.创建一个request对象
StringRequest stringRequest = new StringRequest("http://www.baidu.com", new Response.Listener<String>() {
@Override
public void onResponse(String s) {
//成功回调
Log.d("VOLLEY",s);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
//失败回调
}
});
//3.加入队列
mQueue.add(stringRequest);
注意:由于Volley是要访问网络的,因此不要忘记在你的AndroidManifest.xml中添加如下权限:
<uses-permission android:name="android.permission.INTERNET"/>
并且volley 内部已经封装了UI层回调的方法,不需要借助子线程以及handler来更新UI,直接在成功回调方法里就可对UI进行更新操作。
4.JsonRequest的简单用法
//1.获取到RequestQueue对象
RequestQueue mQueue = Volley.newRequestQueue(mContext);
//2.创建一个request对象
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest("http://192.168.1.4:8080/HttpServers/test", null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {
//成功回调
Log.d("VOLLEY", jsonObject.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
//失败回调
Log.d("VOLLEY", volleyError.toString());
}
});
//3.加入队列
mQueue.add(jsonObjectRequest);
由此可见:volley的用法基本上都是极为相似的,其中JsonArrayRequest也大致如此。