Я пытаюсь добавить Google DNS lookup, который называется 8.8.8.8.в моем приложении для Android я использую Retrofit с OkHttp.
Возможно ли это программно?
Я видел этот пост, но не смог добавить его dns-android-okhttp .
Если вы хотите попробовать DNS через HTTPS, запрашивающий Google (технически не 8.8.8.8), тогда он поддерживается в качестве экспериментального модуля в OkHttp
OkHttpClient bootstrapClient = new OkHttpClient(); Dns google = new DnsOverHttps.Builder().client(bootstrapClient) .url(HttpUrl.get("https://dns.google.com/experimental")) .build(); OkHttpClient client = new OkHttpClient.Builder().dns(google).build(); Response result = client.newCall(new Request.Builder().url("https://google.com/robots.txt").build()) .execute(); System.out.println(result.body().string());
Сейчас он работает на самом деле в dns-android-okhttp Я искал, я искал, какую библиотеку он использует для Resolver, которая была dnsjava
dnsjava
скомпилируйте 'dnsjava: dnsjava: 2.1.7'
И теперь, после его добавления, мой код работает правильно.
Возможно, но неудобно подключиться к обычному DNS Google 8.8.8.8, вам нужно написать собственную реализацию DNS, используя такие библиотеки, как Netty или dnsjava.Вот один, который я только что взбил.
Например https://github.com/yschimke/okurl/blob/release/1.57/src/main/kotlin/com/baulsupp/okurl/network/NettyDns.kt