如何使用 okio/okhttp 解码 http 请求数据包
Posted
技术标签:
【中文标题】如何使用 okio/okhttp 解码 http 请求数据包【英文标题】:How to decode a http request packet with okio/okhttp 【发布时间】:2019-04-25 08:41:49 【问题描述】:我可以使用 Okio 和/或 OkHTTP 来解码从 ParcelFileDescriptor 读取的数据包吗?
我正在尝试在 android 上编写一个基于 ***Service
的广告拦截器。
我发现了一些使用***Service
(NetGuard,NetKnight)的开源项目,所以我可以向他们学习。
我知道 OkHTTP 可以只使用url
和method
发出请求,这意味着它可以理解GET http://***.com Http/1.1
之类的东西,并将其转换为真正的基于TCP/IP 的请求,甚至解码响应。所以我试图阅读一些 Okio 的源代码以了解它的作用,但失败了。
所以我想知道是否可以使用 Okio 的组件来解码/编码 TCP/IP 数据包?
【问题讨论】:
【参考方案1】:是的。使用普通 API 创建一个 Socket,然后使用 Okio.source(Socket)
和 Okio.sink(Socket)
从中获取流。另外不要忘记您可以使用Okio.buffer()
缓冲这些流。
【讨论】:
socket是怎么来的? ***Service 返回一个 ParcelFileDescriptor。以上是关于如何使用 okio/okhttp 解码 http 请求数据包的主要内容,如果未能解决你的问题,请参考以下文章