android端使用volley访问网络接口的使用
-------------------------------------准备工作-------------------------------------
1、我们要使用到一个名叫volley的jar包;
2、首先将项目显示成project的目录结构。将它放入项目的app目录下的libs目录下,然后右击这个jar包,选择Add as Library,知道这个jar包名前面出现箭头即可。
--------------------------------然后就是代码封装部分了--------------------------------
我们需要一个类,这个类继承Application,这里我取的类名为MyApplication。
import android.app.Application;
import android.content.Context;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.Volley;
public class MyApplication extends Application {
public static RequestQueue queue;
public static Context mContext;
@Override
public void onCreate() {
super.onCreate();
mContext = getApplicationContext();
queue = Volley.newRequestQueue(getApplicationContext());
}
}
然后在AndroidManifest.xml文件里面添加网络访问权限,以及在application标签上填入android:name=".MyApplication",就像这样:
再对网络请求的方法进行封装,这里我做了三种类型的数据的方法封装,分别为JSONArray,JSONObject,String:
public class HttpRequest {
public static void postJSONArray(String links, JSONObject jsonObject, Response.Listener<JSONArray> listener, Response.ErrorListener errorListener) {
JsonArrayRequest request = new JsonArrayRequest(1, links, jsonObject, listener, errorListener);
MyApplication.queue.add(request);
}
public static void postJSONObject(String links, JSONObject jsonObject, Response.Listener<JSONObject> listener, Response.ErrorListener errorListener) {
JsonObjectRequest request = new JsonObjectRequest(1, links, jsonObject, listener, errorListener);
MyApplication.queue.add(request);
}
public static void getString(String str, Response.Listener<String> listener, Response.ErrorListener errorListener) {
StringRequest request = new StringRequest(str, listener, errorListener);
MyApplication.queue.add(request);
}
}
--------------------------------最后就是代码使用的部分了--------------------------------
try {
HttpRequest.postJSONArray("url", new JSONObject("{}"), new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray jsonArray) {
//访问成功操作,得到了JSONArray类型的数据
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
//访问错误的操作
}
});
} catch (JSONException e) {
e.printStackTrace();
}
try {
HttpRequest.postJSONObject("url", new JSONObject("{}"), new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {
//访问成功操作,得到了JSONObject类型的数据
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
//访问错误的操作
}
});
} catch (JSONException e) {
e.printStackTrace();
}
HttpRequest.getString("url", new Response.Listener<String>() {
@Override
public void onResponse(String s) {
//访问成功操作,得到了String类型的数据
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
//访问错误的操作
}
});
最后说一下使用volley的方便之处,使用它就可以直接在拿到数据的地方去操作UI界面,不用再去使用那些繁琐的操作了。
再附上一个案例的github地址:https://github.com/zhuzhengjundev/volley
-------------------------结束,第一次发文章,感谢支持--------------------------