Okio is very nice, and Okhttp is quite ergonoic, but I can't recommend Okhttp if true async is on the table (it's just blocking and threadpools under the covers).
https://openjdk.java.net/jeps/321
https://github.com/AsyncHttpClient/async-http-client
https://hc.apache.org/httpcomponents-client-5.1.x/examples-a...
What wasn't clear to me was if the coroutine/nio mashup still used threadpools because coroutines do.