如何将 OkHttp 请求路由到特定的网络接口?

How can I route OkHttp request to specific network interface?

我想要实现的是绕过 mobile/3G 连接,或者至少在我尝试某些网络请求时将其作为第二选择。我需要这个以便在向连接到我设备上的 AP 的设备发出 HTTP 请求时获得尽可能小的延迟。

我已经尝试制作自定义 SocketFactory,其中我明确设置了 wifi 网络接口 (wlan0) 的本地地址并将其传递给 OkHttpClient。从 logs/debug 我发现 OkHttpClient 没有使用我认为它会使用的本地地址和路由,但尝试联系代理(3G 连接的 APN 设置)。

有没有办法绕过不必要的 3g 呼叫(可能试图解析主机地址)?

您也许能够构建 OkHttp 的 Dns 接口的实现,该接口使用 Android 的 Network 进行 DNS 查找。