Ich muss spezifische Anfragen werfen werfen Wifi, auch WLAN "Verbunden, kein Internet" und "Mobile Data" ist eingeschaltet.OkHttp Route Verkehr werfen Wifi und SocketFactory
Unten Beispiel arbeitet mit HttpURLConnection
in Ordnung, aber funktioniert nicht mit OkHttp3 (3.8.1), die primäre Netzwerkbibliothek für App ist:
-Code funktioniert wie unten mit OkHttp Version erwartet: 3.4.2
Aber gebrochen seit OkHttp Version: 3.5.0
OkHttpClient.Builder builder = new OkHttpClient.Builder();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
final Network[] networks = connectivityManager.getAllNetworks();
for (final Network network : networks) {
final NetworkInfo netInfo = connectivityManager.getNetworkInfo(network);
if (netInfo.getType() == ConnectivityManager.TYPE_WIFI && netInfo.getState() == NetworkInfo.State.CONNECTED) {
// just for example HttpURLConnection works as expected and route traffic throw wifi
connection = (HttpURLConnection) network.openConnection(url);
// not works since >=3.5.0, route traffic in same way
builder.socketFactory(network.getSocketFactory());
}
}
}
OkHttpClient client = builder.build();
final Response response = client.newCall(initialRequest).execute();
client.newCall nicht wie erwartet funktioniert, wie ich es verstehe, oder ich einfach fehlende s etwas.