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

使用 Retrofit+OkHttp,在数据发出去之前,怎样获取获取 @Field 所有参数进行签名,然后再把 sign 签名加入到请求参数里发出去完成请求

  •  
  •   nextdiscover · 2018-09-16 10:14:06 +08:00 · 2067 次点击
    这是一个创建于 428 天前的主题,其中的信息可能已经有所发展或是发生改变。
    13 回复  |  直到 2018-12-19 15:26:52 +08:00
        1
    zhchyu999   2018-09-16 10:20:00 +08:00 via Android
    okhttp 有个拦截器
        2
    saximoer   2018-09-16 11:18:41 +08:00
    ohhttp 有一个 Interceptor 接口
    实现这个接口就 实现了拦截器的功能
    然后记得把这个拦截器加入 okhttp 的声明中就可以了
        3
    hongch   2018-09-16 17:18:56 +08:00 via iPhone
    intercept 可以看一下 okhttp 源码 interceptchain 允许加入两个 intercept 分别是请求前和请求后
        4
    nextdiscover   2018-09-17 00:03:07 +08:00 via iPhone
    @zhchyu999 我试过了,拦截器拿到的参数只能是拦截器设置之前的参数,在 @filed 属性加入的参数拿不到
        5
    nextdiscover   2018-09-17 00:03:31 +08:00 via iPhone
    @saximoer 我试过了,拦截器拿到的参数只能是拦截器设置之前的参数,在 @filed 属性加入的参数拿不到
        6
    nextdiscover   2018-09-17 00:03:42 +08:00 via iPhone
    @hongch 我试过了,拦截器拿到的参数只能是拦截器设置之前的参数,在 @filed 属性加入的参数拿不到
        7
    saximoer   2018-09-17 00:19:03 +08:00
        8
    wsxyeah   2018-09-17 08:23:50 +08:00 via iPhone
    interceptor 里肯定不能直接拿到 retrofit 里的 field 啊,只能拿到 request body,可以从 request body 里取出字段再操作
        9
    nextdiscover   2018-09-17 09:17:35 +08:00 via iPhone
    @wsxyeah 嗯嗯,今天试试,谢谢
        10
    nextdiscover   2018-09-17 09:19:36 +08:00 via iPhone
    @saximoer 谢谢,我去看看
        11
    hongch   2018-09-17 12:40:06 +08:00
    - - @nextdiscover 当然是拿 requestbody 如果是 get 请求就从 url 里拿
        12
    zhchyu999   2018-09-17 18:06:32 +08:00
    印象中好像是改不了,得 new 一个新的
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1354 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 17:18 · PVG 01:18 · LAX 09:18 · JFK 12:18
    ♥ Do have faith in what you're doing.