使用场景
在实际的开发中,有时候后台需要在每个接口中带有一些公共的参数,比如当前APP的版本、访问时间、或者一些约定的秘钥等等,当然我们可以在每个接口中都添加这样的参数就可以了,但是那样做对一个程序员来说肯定不够优雅,所以就想怎么在接口请求的时候统一的对所有的接口加上这些参数。
解决办法
经过查阅资料发现可以使用OKHttp的拦截器(Interceptor)实现。
使用方法
新建一个
MyInterceptor实现Interceptor接口;重写
intercept方法。
具体代码如下
|
|
- 在OKHttp或Retrofit中使用
两者是一样的都是通过OKHttp来添加,如下:
|
|
如上所示,就完成了普通的GET和POST方式使用时对所有的接口统一添加公共接口。
结语
本人最初是为了在访问后台接口的时候对所有的参数进行统一的加密,前后端使用同样的加密算法以及秘钥,但是在具体使用过程中如何传送秘钥,以及如何保证秘钥的传递安全以及加密算法的安全是需要重点考量的。
通过拦截器可以做很多事情,例如缓存等。
参考文章: