我有一个在Godaddy中注册的域,但我在第53条路由中有DNS服务器。
当我尝试通过我的android应用程序ping网站时,DNS解析在第一时间(每10分钟一次)需要5秒。对于iOS或Mac浏览器,当我尝试从邮递员访问网址时,情况并非如此。这仅在我的android应用中发生。
尝试的解决方案:
1)在其他手机上尝试过
2)尝试了不同的网络。
所花时间的轨迹: 请求1(新连接)
0.000 callStart
0.007 dnsStart
5.048 dnsEnd
5.049 connectStart
5.056 secureConnectStart
5.106 secureConnectEnd
5.108 connectEnd
5.109 connectionAcquired
5.110 requestHeadersStart
5.112 requestHeadersEnd
5.196 responseHeadersEnd
5.197 responseBodyStart
REQUEST 1 (new connection) end success
如果您能在这里帮助我,那将是很大的帮助。
编辑:添加代码
String url = "https://customurl/";
OkHttpClient httpClient = new OkHttpClient.Builder()
.eventListener(new PrintingEventListener())
.dns(DnsSelector.byName("ipv6"))
.build();
Retrofit client = new Retrofit.Builder().baseUrl(url).client(httpClient)
.build();
System.out.println("Scanning REQUEST 1 (new connection) url: " + url);
TestInterface testInterface = client.create(TestInterface.class);
Call<ResponseBody> testCall = testInterface.testCall();
Log.i( TAG, "Scanning apiCall Start");
testCall.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
Log.i( TAG, "Scanning apiCall end success");
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
Log.i( TAG, "Scanning apiCall end failed");
}});
在Android模拟器中非常快 0.000个通话开始
0.010 dnsStart
0.095 dnsEnd
0.096 connectStart
0.103 secureConnectStart
0.537 secureConnectEnd
0.563 connectEnd
获得0.565连接
0.567 requestHeadersStart
0.572 requestHeadersEnd
0.573 responseHeadersStart
0.733 responseHeadersEnd
0.739 responseBodyEnd
0.740连接已释放
0.740 callEnd
答案 0 :(得分:0)
我能够找到一种解决方法。在发布之前,我曾尝试过此解决方案,但由于某种原因,该解决方案当时不起作用。
我添加了here所述的公共DNS解析器
这使dns查找间隔从5.5秒降低到300 ms。尽管从我的角度来看,这仍然很高,但是要好得多。