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

2018-09-16 10:14:06 +08:00
 nextdiscover
9433 次点击
所在节点    Android
13 条回复
zhchyu999
2018-09-16 10:20:00 +08:00
okhttp 有个拦截器
saximoer
2018-09-16 11:18:41 +08:00
ohhttp 有一个 Interceptor 接口
实现这个接口就 实现了拦截器的功能
然后记得把这个拦截器加入 okhttp 的声明中就可以了
hongch
2018-09-16 17:18:56 +08:00
intercept 可以看一下 okhttp 源码 interceptchain 允许加入两个 intercept 分别是请求前和请求后
nextdiscover
2018-09-17 00:03:07 +08:00
@zhchyu999 我试过了,拦截器拿到的参数只能是拦截器设置之前的参数,在 @filed 属性加入的参数拿不到
nextdiscover
2018-09-17 00:03:31 +08:00
@saximoer 我试过了,拦截器拿到的参数只能是拦截器设置之前的参数,在 @filed 属性加入的参数拿不到
nextdiscover
2018-09-17 00:03:42 +08:00
@hongch 我试过了,拦截器拿到的参数只能是拦截器设置之前的参数,在 @filed 属性加入的参数拿不到
saximoer
2018-09-17 00:19:03 +08:00
wsxyeah
2018-09-17 08:23:50 +08:00
interceptor 里肯定不能直接拿到 retrofit 里的 field 啊,只能拿到 request body,可以从 request body 里取出字段再操作
nextdiscover
2018-09-17 09:17:35 +08:00
@wsxyeah 嗯嗯,今天试试,谢谢
nextdiscover
2018-09-17 09:19:36 +08:00
@saximoer 谢谢,我去看看
hongch
2018-09-17 12:40:06 +08:00
- - @nextdiscover 当然是拿 requestbody 如果是 get 请求就从 url 里拿
zhchyu999
2018-09-17 18:06:32 +08:00
印象中好像是改不了,得 new 一个新的
lx0758
2018-12-19 15:26:52 +08:00

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

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

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

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

© 2021 V2EX