栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用齐射发出GSON请求

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用齐射发出GSON请求

只需

GsonRequest
按以下步骤创建一个类(取自Android Developer
Docs

public class GsonRequest<T> extends Request<T> {private final Gson gson = new Gson();private final Class<T> clazz;private final Map<String, String> headers;private final Listener<T> listener;public GsonRequest(String url, Class<T> clazz, Map<String, String> headers,        Listener<T> listener, ErrorListener errorListener) {    super(Method.GET, url, errorListener);    this.clazz = clazz;    this.headers = headers;    this.listener = listener;}@Overridepublic Map<String, String> getHeaders() throws AuthFailureError {    return headers != null ? headers : super.getHeaders();}@Overrideprotected void deliverResponse(T response) {    listener.onResponse(response);}@Overrideprotected Response<T> parseNetworkResponse(NetworkResponse response) {    try {        String json = new String(     response.data,     HttpHeaderParser.parseCharset(response.headers));        return Response.success(     gson.fromJson(json, clazz),     HttpHeaderParser.parseCacheHeaders(response));    } catch (UnsupportedEncodingException e) {        return Response.error(new ParseError(e));    } catch (JsonSyntaxException e) {        return Response.error(new ParseError(e));    }}}

现在,在您的类文件(活动)中,只需按如下所示调用此类:

RequestQueue queue = MyVolley.getRequestQueue();GsonRequest<MyClass> myReq = new GsonRequest<MyClass>(Method.GET,        "http://JSONURL/",        TagList.class,        createMyReqSuccessListener(),        createMyReqErrorListener()); queue.add(myReq);

我们还需要创建两种方法-

  1. createMyReqSuccessListener()
    -收到来自的回复
    GsonRequest
  2. createMyReqErrorListener()
    -处理任何错误

如下:

private Response.Listener<MyClass> createMyReqSuccessListener() {    return new Response.Listener<MyClass>() {        @Override        public void onResponse(MyClass response) {// Do whatever you want to do with response;// Like response.tags.getListing_count(); etc. etc.        }    };}

private Response.ErrorListener createMyReqErrorListener() {    return new Response.ErrorListener() {        @Override        public void onErrorResponse(VolleyError error) { // Do whatever you want to do with error.getMessage();        }    };}

我希望这会有意义。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/609209.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号