httpdns功能
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user