如何使用Retrofit获取服务器返回来的JSON字符串
时间:2022-05-03
本文章向大家介绍如何使用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。
- 技术创新,基于 React Native 的开源项目 | 码云周刊第 17 期
- How to Use the TimeDistributed Layer for Long Short-Term Memory Networks in Python 译文
- ssctf2017_WriteUp
- CENTOS7.2安装CDH5.10和Kudu1.2(一)
- Docker镜像管理
- 360春秋杯3道web题的简单分析
- Vue 2.0 学习总结,精华全在这里了
- 25.2 安装Docker
- 使用JDBC向Kudu表插入中文字符-cast的秘密
- 使用JDBC向Kudu表插入中文字符-双引号的秘密
- Yarn的JobHistory目录权限问题导致MapReduce作业异常
- 输入一个数字,然后计算出从1到输入数字的和,要求,如果输入的数字小于1,则重新输入,直到输入正确的数字为止
- Linux基础(day76)
- zabbix设置QQ邮箱告警
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- tf.slice函数解析
- 用 Tensorflow 实现简单多层神经网络
- Tensorflow 命名空间与计算图可视化
- Tensorboard 高维向量可视化
- 在K3s上使用Kong网关插件,开启K3s的无限可能!
- 在线教育平台开发中,作业功能中的图片上传是如何实现的
- java基本数据类型
- java基础语法
- java对象和类
- python中使用马尔可夫决策过程(MDP)动态编程来解决最短路径强化学习问题
- 《剑指 offer》刷题记录之:数组
- R语言中绘制箱形图的替代品:蜂群图和小提琴图
- 《剑指 offer》刷题记录之:字符串 & 链表
- python中使用马尔可夫决策过程(MDP)动态编程来解决最短路径强化学习问题
- 《剑指 offer》刷题记录之:树 & 栈和队列