android - 如何使用retrofit2 发布一个json 数组?例如,
问题描述
我有类似的问题,
API需要像这样发送
checkpoin=[{"id":"1907","gps":"31213123,3131231","status":"1"}]
我成功创建了:
[{"id":"1907","gps":"31213123,3131231","status":"1"}]
和改造配置是这样的
@POST("save_clockings")Observable<ResponseSaveCehckpoint> saveChekpoint (
@Query(value = "checkpoint" ,encoded = true) List<JsonObject> checkpoint);
但我查看 HTTP 日志记录
像这样的网址
https://my.domain.com/api/save_clockings?checkpoint={%22id%22:%221907%22,%22gps%22:%2231213123,3131231%22,%22time%22:%221532674384157%22,%22status%22:%221%22}
我通过失眠发送成功, 在此处输入图像描述
为什么要改造将字符 (") 转换为 (%22);
有人能帮我吗?谢谢
解决方案
@POST("save_clockings") Observable<ResponseSaveCehckpoint> saveChekpoint(@Query(value = "checkpoint") List<JsonObject> checkpoint);
删除encoded = true
,因此它不会将您编码"
为%22
正如您所描述的,所做的更改解决了您的问题..
Request request = original.newBuilder()
.header("User-Agent", "Accept-Encoding")
.addHeader("accept-charset", "utf-8")
.method(original.method(), original.body())
.build();
推荐阅读
- youtube-api - 在 youtube embed 上循环播放视频时如何隐藏播放列表
- android - Android NDK GCC 似乎很响——它应该是这样吗?
- excel - 如何将此 vba 代码调整为仅从第一个工作表复制
- javascript - babel src --out-file / 需要来自 src/lib 的模块
- c# - C# 通用 IEnumerable
- csv - Spark中将csv文件加载到RDD和Dataframe之间的区别
- kubernetes - 即使设置了 configmap 和注释,nginx 入口也总是重定向到 https
- dart - TextFormField 验证器,错误在 TextFormField 上不可见
- c# - 如何将嵌套的 ObservableCollection 从源更新到目标?
- android - 如何使用 context.startActivity(intent) 获取结果?