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

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<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
-------------------------结束,第一次发文章,感谢支持--------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值