Volley 自定义请求,返回GsonRequest,进行封装解

本文介绍了如何在Volley中创建自定义的GsonRequest,用于处理返回Gson格式的数据。通过封装Request,可以更方便地解析和操作网络响应。
摘要由CSDN通过智能技术生成

1,Volley 自定义请求,返回GsonRequest,进行封装解

  • 创建GsonRequest继承Request

import com.android.volley.NetworkResponse;

import com.android.volley.Request;

import com.android.volley.Response;

import com.android.volley.toolbox.HttpHeaderParser;

import com.google.gson.Gson;

import java.io.UnsupportedEncodingException;



public class GsonRequest<T> extends Request<T>{

    private Class<T> clazz;

    private Response.Listener<T> mListener;





    public GsonRequest(String url,Class<T> clazz, Response.Listener<T> mListener,Response.ErrorListener listener) {

        super(Method.GET, url, listener);

        this.clazz = clazz;

        this.mListener = mListener;

    }

    //仿照StringRespnose

    @Override

    protected Response<T> parseNetworkResponse(NetworkResponse response) {

        String parsed;

        try {

            parsed = new String(response.data, HttpHeaderParser.parseCharset(response.headers));

        } catch (UnsupportedEncodingException e) {

            parsed = new String(response.data);

        }

        //将json字符串解析为javabean

        T t = new Gson().fromJson(parsed, clazz);

        return Response.success(t, HttpHeaderParser.parseCacheHeaders(response));

    }

    @Override

    protected void deliverResponse(T response) {

        mListener.onResponse(response);

    }

}
  • 调用进行网络访问返回是Gson格式

queue = Volley.newRequestQueue(this); //进行初始化

//参数1  URL,参2 JAVAbean 参3 成功监听,参4 失败监听

GsonRequest<User> gsonRequest = new GsonRequest<>(Api.TEST, User.class, new Response.Listener<User>() {

    @Override

    public void onResponse(User response) {

        text.setText(response.name);

    }

}, new Response.ErrorListener() {

    @Override

    public void onErrorResponse(VolleyError error) {





    }

});

queue.add(gsonRequest);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兴帅_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值