Очень медленное соединение с доменом OkHttp с поддержкой IPv6 в Android Studio
У меня есть два домена, указывающие на один и тот же сервер: у одного включен ipv6, у другого нет.
4 сценария отправки запроса
- IPv6 включен, используется Wi-Fi, возврат примерно через 4 секунды.
- IPv6 включен, используются сотовые данные, возврат примерно через 36 секунд.
- IPv6 отключен, используется Wi-Fi, возврат примерно через 4 секунды
- ipv6 отключен, используются сотовые данные, возврат примерно через 6 секунд
Ниже приведен мой Java-код, надеюсь, кто-нибудь поможет мне с включенным ipv6, используя ситуацию с сотовыми данными.
protected int executePost(String _url, byte[] _data) {
OkHttpClient bootstrapClient = new OkHttpClient.Builder()
.callTimeout(20, TimeUnit.SECONDS)
.cache(new Cache(new File("/local/cacheDirectory"), 10 * 1024 * 1024))
.retryOnConnectionFailure(false)
.followRedirects(false)
.followSslRedirects(false)
.build();
Dns dns = new DnsOverHttps.Builder().client(bootstrapClient)
.url(HttpUrl.get("https://cloudflare-dns.com/dns-query"))
.bootstrapDnsHosts(getByIp("1.1.1.1"), getByIp("1.0.0.1"))
.includeIPv6(true)
.post(true)
.build();
OkHttpClient client = bootstrapClient.newBuilder().dns(dns).build();
final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
RequestBody postBody = RequestBody.create(_data, JSON);
Request post = new Request.Builder()
.url(_url)
.post(postBody)
.addHeader("Content-Type", "application/json")
.build();
try (Response response = client.newCall(post).execute()) {
m_httpStatus = response.code();
m_httpBody = response.body().string();
} catch(Exception e) {
m_httpStatus = -1;
m_httpError = e.getCause().toString();
}
return m_httpStatus;
}
PS Я использую okhttp:5.0.0-alpha.11 и уверен, что на моем устройстве есть ipv6.