请教一个 retrofit 的问题

2016-08-02 11:09:45 +08:00
 z42514
现在遇到个问题就是:
POST 方式提交中文会出现乱码,然后我尝试换回了 volley 又正常了。
请问这种情况是我本地的问题么?

@FormUrlEncoded
@POST("add")
Call<ResponseBody> Add(@FieldMap Map<String, String> options);

API 是这样定义的,在网上搜似乎没什么人反应 post 中文会乱码的问题,
希望大家帮忙指点一下,谢谢
6063 次点击
所在节点    Android
11 条回复
xuhaoyangx
2016-08-02 12:25:37 +08:00
底层用 okhttp 不支持 gbk
kitalphaj
2016-08-02 13:01:11 +08:00
感觉和 FormUrlEncoded 有关
kifile
2016-08-02 14:44:48 +08:00
确定和服务器无关?我这边 post 也有 post 中文,表示没有问题.
z42514
2016-08-02 14:47:38 +08:00
@kifile

换成 volley ,服务器没变动的情况下没出现这个问题,应该是和服务器无关的
cbiqih
2016-08-02 15:11:10 +08:00
可以通过 addInterceptor 添加自定义的 Interceptor
kifile
2016-08-02 15:24:32 +08:00
@z42514 如果方便的话,可以在服务器对比一下两次传入数据的区别,或者进行抓包看看。
kooze
2016-08-02 17:11:10 +08:00
试试 @FieldMap(encoded = false)
kooze
2016-08-02 17:11:43 +08:00
@FieldMap(encoded = true)
不对,应该是 true
jinsen47
2016-08-03 09:26:35 +08:00
POST 使用 url-encode 方式进行传输, 抓包看看 decode 的对不对
Xinghx
2016-08-06 08:52:42 +08:00
我使用 retrofit 真的没有碰到过乱码
Synix
2016-08-08 09:52:12 +08:00
不幸也遇到了这个问题,请问楼主解决了吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/296521

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX