android端使用volley访问网络接口的使用

Delfina ·
更新时间:2024-09-21
· 933 次阅读

android端使用volley访问网络接口的使用

-------------------------------------准备工作-------------------------------------
1、我们要使用到一个名叫volley的jar包;
2、首先将项目显示成project的目录结构。将它放入项目的app目录下的libs目录下,然后右击这个jar包,选择Add as Library,知道这个jar包名前面出现箭头即可。
volley包放入的位置
--------------------------------然后就是代码封装部分了--------------------------------
我们需要一个类,这个类继承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",就像这样:
AndroidManifest.xml改变
再对网络请求的方法进行封装,这里我做了三种类型的数据的方法封装,分别为JSONArray,JSONObject,String:

public class HttpRequest { public static void postJSONArray(String links, JSONObject jsonObject, Response.Listener 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 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 listener, Response.ErrorListener errorListener) { StringRequest request = new StringRequest(str, listener, errorListener); MyApplication.queue.add(request); } }

--------------------------------最后就是代码使用的部分了--------------------------------

try { HttpRequest.postJSONArray("url", new JSONObject("{}"), new Response.Listener() { @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() { @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() { @Override public void onResponse(String s) { //访问成功操作,得到了String类型的数据 } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { //访问错误的操作 } });

最后说一下使用volley的方便之处,使用它就可以直接在拿到数据的地方去操作UI界面,不用再去使用那些繁琐的操作了。
再附上一个案例的github地址:https://github.com/zhuzhengjundev/volley
-------------------------结束,第一次发文章,感谢支持--------------------------


作者:IT小新



volley 网络接口 接口 Android

需要 登录 后方可回复, 如果你还没有账号请 注册新账号