如何使用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 条评论
登录 后参与评论

相关文章

来自专栏大内老A

让我们的ASP.NET MVC应用可以单独维护验证消息

在项目开发中,我们会使用到很多的描述性文字,比如验证消息、错误消息和确认消息等,让这些文本消息具有可维护性具有重要的意义。虽然我们可以将它们存储于资源文件中,并...

1837
来自专栏angularejs学习篇

.net捕捉全局未处理异常的3种方式

 我们在实际项目开发中,经常会遇到一些不可预见的异常产生,有的异常在程序运行时就对其进行处理(try) 但是,有的程序不需要每一个地方都用try进行处理,那么针...

152
来自专栏陈满iOS

iOS·子父类同时实现KVO响应方法时的执行顺序

451
来自专栏XAI

微信公众号发送模板消息 Java实现。

本博文是测试公众号调用模板接口测试。请不要完全复制我的代码。里面的测试代码中有本人测试号的微信模板id。麻烦替换成自己的可以吗? 第一步:创建模板信息 ? ? ...

31611
来自专栏NetCore

.Net中如何操作IIS

Net中实际上已经为我们在这方面做得很好了。FCL中提供了不少的类来帮助我们完成这项工作,让我们的开发工作变非常简单和快乐。编程控制IIS实际上很简单,和ASP...

2979
来自专栏大内老A

ASP.NET的路由系统:根据路由规则生成URL

前面我们已经提到过,ASP.NET 的路由系统主要具有两个方面的应用,其一就是通过注册URL模板与物理文件路径的匹配实现请求地址和物理地址的分离;另一个则是通过...

1898
来自专栏菩提树下的杨过

struts2 异常处理3板斧

板斧1:找不到action的错误 ? 在struts.xml中参考如下配置 1 <struts> 2 3 ... 4 <package...

1866
来自专栏后端之路

SpringBoot 打包之可运行jar

背景 一个可运行的工具始终比XXX配置更加方便 每次一堆tomcat版本指定,对应jar替换 各种打包 替换properties 参考 maven profil...

28910
来自专栏魏琼东

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 插件标记实现

      前面的文章AgileEAS.NET之插件接口IModule对插件的基本契约宝义也就是接口做了一个介绍,本文将提供另一种模块插件的定义,采用属性标记插...

1835
来自专栏向治洪

动态补丁升级

一、概述 最新github上开源了很多热补丁动态修复框架,大致有: https://github.com/dodola/HotFix https://git...

2469

扫描关注云+社区