How to decode a http request packet with okio/okhttp

343 Views Asked by At

Can I use Okio and/or OkHTTP to decode a packet read from ParcelFileDescriptor ?

I'm trying to write a VpnService based ad-blocker on android.

I've found a few open source projects using VpnService (NetGuard, NetKnight), so I could learn from them.

And I known OkHTTP could make a request using just url and method, which means it could understood some thing like GET http://stackoverflow.com Http/1.1, and transform it to a real TCP/IP based request, even decode response. So I tried to read some source code of Okio to found out what it does, but failed.

So I was wondering if I could use Okio's component to decode/encode TCP/IP packets?

1

There are 1 best solutions below

1
On

Yes. Create a Socket using the normal APIs, then use Okio.source(Socket) and Okio.sink(Socket) to get streams from it. Also don't forget that you can buffer these streams with Okio.buffer().