Android Retrofit / OkHttp是否以编程方式使用“ 8.8.8.8”进行DNS查找?

时间:2018-09-22 16:35:34

标签: android dns retrofit okhttp

我尝试添加Google DNS查找,即“ 8.8.8.8”。在我的android应用程序中,我将Retrofit与OkHttp一起使用。

可以通过编程吗?

我看到了这篇文章,但无法添加它dns-android-okhttp

3 个答案:

答案 0 :(得分:1)

选择使用Google 8.8.8.8常规DNS是可能的,但很尴尬,您需要使用Netty或dnsjava之类的库编写自己的DNS实现。这是我刚刚打过的电话。

例如here

答案 1 :(得分:1)

如果您想尝试通过HTTPS查询Google的DNS(从技术上来说不是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());

答案 2 :(得分:1)

它实际上正在我正在搜索的dns-android-okhttp中工作,我正在寻找他用于解析器的哪个库,dnsjava

  

编译'dnsjava:d​​nsjava:2.1.7'

现在添加它之后,我的代码可以正常工作。