status
Published
type
Post
category
技术分享
date
Nov 2, 2023
slug
okhttp
summary
OKHTTP拦截方式
tags
安卓
password
icon
- okhttp是什么? -安卓端,发送网络请求的库
- okhttp的拦截器是什么? -在请求发送出去之前或请求回来以后,做一些统一拦截和处理
- 移动端使用拦截器主要目的是? -统一在每个请求中都加入固定的头【比如:签名 时间戳 。。。】
OKHttp 拦截器主要有两种类型:应用拦截器和网络拦截器。这两种拦截器虽然在功能上有所重叠,但它们在处理请求和响应的方式上有一些关键的差别。下面我将介绍这两种拦截器的使用方式,并给出相应的代码实现示例。

1. 应用拦截器 (addInterceptor)
应用拦截器是与请求和响应最终呈现给应用的形式相关联的。它们不会处理中间的响应,如重定向和重试。
常用于:
- 添加公共头部(如认证令牌)
- 记录日志
- 请求/响应数据转换
示例:添加一个公共头部
2. 网络拦截器 (addNetworkInterceptor)
网络拦截器可以操作中间响应,如重定向和重试。它们直接访问请求和响应之前的原始数据。
常用于:
- 缓存处理
- 监控网络请求和响应
- 访问/修改原始请求和响应
示例:记录网络请求和响应的日志
注意事项
- 线程安全:拦截器必须是线程安全的,因为同一个拦截器实例可能会被多个线程同时使用。
- 修改请求和响应:拦截器可以修改请求和响应,但需要谨慎操作,以避免破坏原始请求/响应的完整性。
- 性能考量:长时间运行的操作(如日志记录)可能会影响请求/响应的性能,尤其是在网络拦截器中。
这些是使用 OKHttp 拦截器的两种常见方式,它们可以根据不同的应用场景灵活应用。
逆向中拦截器重点
以后,如果遇到某个app,所有请求头中都带某几个参数--》本能反应就是---》它可能写了个拦截器统一做了处理
- 根据关键字搜索:Interceptor---》搜索app用了哪些拦截器---》拦截器中找到相关参数的加密方式
- 通过hook定位,使用哪些拦截器
- hook --
addInterceptor使用次数,如果执行了多次,就会使用多个拦截器
- hook的通用脚本:hook--拦截器通用脚本---》addInterceptor--》执行几次就是使用了几个拦截器--》打印出了拦截器名字--》通过反编译搜索对应的拦截器看代码,做了什么加密
Loading...


.png?table=block&id=8cbd9ef4-8c1c-4581-80f1-a15297380674&t=8cbd9ef4-8c1c-4581-80f1-a15297380674&width=1080&cache=v2)

