如何使用Retrofit获取服务器返回来的JSON字符串

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

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

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

//以前我们使用我们定义好的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字符串了

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。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2546
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4868
来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2645
来自专栏Golang语言社区

【Golang语言社区】GO1.9 map并发安全测试

var m sync.Map //全局 func maintest() { // 第一个 YongHuomap := make(map[st...

4728
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

4888
来自专栏跟着阿笨一起玩NET

c#实现打印功能

2782
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2577
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2182
来自专栏杨龙飞前端

scrollto 到指定位置

2514
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.2K7

扫码关注云+社区