特定のリクエストを送信する必要があります。Wi-Fiでも「Connected、no internet」と「Mobile Data」がオンになっています。例以下はOkHttpルートのトラフィックがWi-FiとSocketFactoryをスローする
はHttpURLConnection
で正常に動作ではなく、アプリの主要なネットワークライブラリであるOkHttp3(3.8.1)で動作します:3.4.2
コードOkHttpバージョンで期待通りに動作します
しかしOkHttpバージョン以降壊れた: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ない作品、私は理解し、または私の単純な不足しているsと予想通り何か。