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

2018 年 9 月 16 日
 nextdiscover
14667 次点击
所在节点    Android
13 条回复
zhchyu999
2018 年 9 月 16 日
okhttp 有个拦截器
saximoer
2018 年 9 月 16 日
ohhttp 有一个 Interceptor 接口
实现这个接口就 实现了拦截器的功能
然后记得把这个拦截器加入 okhttp 的声明中就可以了
hongch
2018 年 9 月 16 日
intercept 可以看一下 okhttp 源码 interceptchain 允许加入两个 intercept 分别是请求前和请求后
nextdiscover
2018 年 9 月 17 日
@zhchyu999 我试过了,拦截器拿到的参数只能是拦截器设置之前的参数,在 @filed 属性加入的参数拿不到
nextdiscover
2018 年 9 月 17 日
@saximoer 我试过了,拦截器拿到的参数只能是拦截器设置之前的参数,在 @filed 属性加入的参数拿不到
nextdiscover
2018 年 9 月 17 日
@hongch 我试过了,拦截器拿到的参数只能是拦截器设置之前的参数,在 @filed 属性加入的参数拿不到
saximoer
2018 年 9 月 17 日
wsxyeah
2018 年 9 月 17 日
interceptor 里肯定不能直接拿到 retrofit 里的 field 啊,只能拿到 request body,可以从 request body 里取出字段再操作
nextdiscover
2018 年 9 月 17 日
@wsxyeah 嗯嗯,今天试试,谢谢
nextdiscover
2018 年 9 月 17 日
@saximoer 谢谢,我去看看
hongch
2018 年 9 月 17 日
- - @nextdiscover 当然是拿 requestbody 如果是 get 请求就从 url 里拿
zhchyu999
2018 年 9 月 17 日
印象中好像是改不了,得 new 一个新的
lx0758
2018 年 12 月 19 日

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

https://v2ex.ih06.com/t/489781

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

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

© 2021 V2EX