gpt4 book ai didi

java - OkHttp3 的非代理主机

转载 作者:搜寻专家 更新时间:2023-11-01 02:04:24 33 4
gpt4 key购买 nike

我如何设置哪些主机名不应该传递给使用代理的 OkHttpClient 发出的一个请求?

OkHttp3 中的 vm 参数 -Dhttp.nonProxyHosts 有什么等价物吗?

例如:

final OkHttpClient okHttpClient = new OkHttpClient
.Builder()
.connectTimeout(60, TimeUnit.SECONDS)
.writeTimeout(60, TimeUnit.SECONDS)
.readTimeout(60, TimeUnit.SECONDS)
.proxy(new Proxy(Proxy.Type.HTTP,
new InetSocketAddress(defaultProxyHostName, Integer.parseInt(defaultProxyPort))))
.build();

最佳答案

在深入研究之后,我找到了如何去做。

所以我必须创建一个 ProxySelector在应该或不应该应用代理时实现逻辑。

示例:

final ProxySelector proxySelector = new ProxySelector() {
@Override
public java.util.List<Proxy> select(final URI uri) {
final List<Proxy> proxyList = new ArrayList<Proxy>(1);

// Host
final String host = uri.getHost();

// Is an internal host
if (host.startsWith("127.0.0.1") || StringUtils.contains(nonProxyHostsValue, host)) {
proxyList.add(Proxy.NO_PROXY);
} else {
// Add proxy
proxyList.add(new Proxy(Type.HTTP,
new InetSocketAddress(proxyHostNameValue, Integer.parseInt(proxyPortValue))));
}

return proxyList;
}

@Override
public void connectFailed(URI arg0, SocketAddress arg1, IOException arg2) {
throw new UnsupportedOperationException("Not supported yet.");
}
};

// Set proxy selector
okHttpClientBuilder.proxySelector(proxySelector);

关于java - OkHttp3 的非代理主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38154628/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com