zoukankan      html  css  js  c++  java
  • 如何使用Retrofit获取服务器返回来的JSON字符串

    有关Retrofit的简单集成攻略,大家可以参考我此前的一篇文章
    有关更多API文档的查阅请大家到Retrofit官网查看。

    在大家使用网络请求的时候,往往会出现一种情况:需要在拿到服务器返回来的JSON字符串,而Retrofit会默认将Json解析,而又没有直接暴露出拿到Json字符串的方法,经过在网上一定的查阅,再次给大家一个简单的办法,就能够拿到Json字符串。

    以下是我们在Api接口中的定义方法

    1
    2
    3
    4
    5
    6
    7
    //以前我们使用我们定义好的POJO或javabean类作为callback的泛型,以便Retrofit帮我们解析
    @POST("/interface/xxxxxx")
    void getCouponList(Callback<Coupon> reponse);

    //但如果我们想获得JSON字符串,Callback的泛型里就不能写POJO类了,要写Response(retrofit.client包下)
    @POST("/interface/xxxxxx")
    void getCouponList(Callback<Response> reponse);

    那么在我们请求接口的时候,只需简单一行代码,就能拿到服务器返回的JSON字符串了

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    ZhixueApiUtil.getInstance().getZhixueApi().getCouponList(new Callback<Response>() {
    @Override
    public void success(Response response, Response response1) {
    //注意这里用第一个Response参数的
    String jsonString = new String(((TypedByteArray) response.getBody()).getBytes());

    //再使用Retrofit自带的JSON解析(或者别的什么)
    Coupon coupon = new Gson().fromJson(jsonString, Coupon.class);
    ......
    }

    @Override
    public void failure(RetrofitError error) {
    ......
    }
    });

    至此,我们就能拿到JSON字符串了,在需要的时候可以用这种办法。
    当然,也希望Retrofit以后能够加入相应的API。

  • 相关阅读:
    千峰公开课徐老师讲解前端前沿技术总结
    网站被k到可以使用关键词搜索到首页优化总结
    SEO基础内容
    react项目后台及上线步骤
    超好用的图片压缩工具,推荐给你
    属性title样式自定义
    Vue.js_devtools_5.1.0.zip【需要的可自行下载】
    js异步执行 按需加载 三种方式
    Web安全之跨站脚本攻击(XSS)
    操作数组不要只会for循环
  • 原文地址:https://www.cnblogs.com/pangguoming/p/5148049.html
Copyright © 2011-2022 走看看