Как я могу направить запрос OkHttp на определенный сетевой интерфейс?

Чего я пытаюсь добиться, так это обойти мобильное / 3G-соединение или, по крайней мере, сделать его вторым выбором, когда я пытаюсь выполнить какой-либо сетевой запрос. Мне это нужно, чтобы получить минимально возможную задержку при выполнении HTTP-запроса к устройству, которое подключено к точке доступа на моем устройстве.

Я попытался создать собственный SocketFactory, где я явно установил локальный адрес сетевого интерфейса Wi-Fi (wlan0) и передал его OkHttpClient. Из журналов/отладки я понял, что OkHttpClient не использовал этот локальный адрес и маршрутизацию, которые, как я думал, он будет использовать, но попытался связаться с прокси-сервером (настройка APN для соединения 3G).

Есть ли способ обойти ненужный вызов 3g (вероятно, пытался разрешить адрес хоста)?


person vbkn    schedule 23.02.2016    source источник


Ответы (1)


Возможно, вы сможете создать реализацию интерфейса Dns OkHttp, использующую сеть для поиска DNS.

person Jesse Wilson    schedule 24.02.2016
comment
Спасибо, мы сделали достаточно быстрый отказ+хендовер с 3G/LTE на WiFi с отключением прокси, но в свое время рассмотрим ваше предложение. - person vbkn; 06.05.2016