httpdns功能

This commit is contained in:
wangcongtao
2020-11-18 11:24:54 +08:00
parent 5d435c388b
commit ac6c217507
11 changed files with 110 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
package com.mogo.utils.network;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.List;
public
/**
* @author congtaowang
* @since 2020/11/18
*
* 描述
*/
interface HttpDns {
List< InetAddress > lookup( String hostname ) throws UnknownHostException;
}

View File

@@ -46,6 +46,8 @@ public final class NetConfig {
private SSLContext sslContext;
private HttpDns httpDns;
private NetConfig() {
}
@@ -157,4 +159,12 @@ public final class NetConfig {
public synchronized void setSslContext( SSLContext sslContext ) {
this.sslContext = sslContext;
}
public HttpDns getHttpDns() {
return httpDns;
}
public void setHttpDns( HttpDns httpDns ) {
this.httpDns = httpDns;
}
}

View File

@@ -1,8 +1,12 @@
package com.mogo.utils.network;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import okhttp3.Dns;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
@@ -45,6 +49,13 @@ public final class OkHttpFactory {
builder.addNetworkInterceptor(networkInterceptor);
}
HttpDns httpDns = NetConfig.instance().getHttpDns();
if ( httpDns != null ) {
builder.dns( hostname -> {
return httpDns.lookup( hostname );
} );
}
sInstance = builder.build();
}
}