首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Android

请教一个 retrofit 的问题

  •  
  •   z42514 · 2016-08-02 11:09:45 +08:00 · 2570 次点击
    这是一个创建于 1079 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在遇到个问题就是:
    POST 方式提交中文会出现乱码,然后我尝试换回了 volley 又正常了。
    请问这种情况是我本地的问题么?

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

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

    换成 volley ,服务器没变动的情况下没出现这个问题,应该是和服务器无关的
        5
    cbiqih   2016-08-02 15:11:10 +08:00
    可以通过 addInterceptor 添加自定义的 Interceptor
        6
    kifile   2016-08-02 15:24:32 +08:00
    @z42514 如果方便的话,可以在服务器对比一下两次传入数据的区别,或者进行抓包看看。
        7
    kooze   2016-08-02 17:11:10 +08:00
    试试 @FieldMap(encoded = false)
        8
    kooze   2016-08-02 17:11:43 +08:00
    @FieldMap(encoded = true)
    不对,应该是 true
        9
    jinsen47   2016-08-03 09:26:35 +08:00
    POST 使用 url-encode 方式进行传输, 抓包看看 decode 的对不对
        10
    Xinghx   2016-08-06 08:52:42 +08:00
    我使用 retrofit 真的没有碰到过乱码
        11
    Synix   2016-08-08 09:52:12 +08:00
    不幸也遇到了这个问题,请问楼主解决了吗?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   941 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 22:22 · PVG 06:22 · LAX 15:22 · JFK 18:22
    ♥ Do have faith in what you're doing.