作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在 Apache 异步 http 客户端中设置重定向策略?我有这样的东西(scala 代码)。注释代码按预期工作,但我无法每秒对一台主机执行超过 4 个并发请求,第二个版本可以处理更多的并发连接,但根本不处理重定向。
object HttpClientManager {
def createHttpClient(): CloseableHttpAsyncClient = { //cm: NHttpClientConnectionManager
/*
val httpClient = HttpAsyncClients
.custom()
.setDefaultRequestConfig(config)
//.setConnectionManager(cm)
.build()
*/
// val config = RequestConfig.custom()
// .setSocketTimeout(3000)
// .setConnectTimeout(3000).build();
val socketConfig = SocketConfig.custom()
.setSoTimeout(15000)
.build();
val connectionConfig = ConnectionConfig.custom()
.setBufferSize(8 * 1024)
.setFragmentSizeHint(8 * 1024)
.build();
val ioreactor = new DefaultConnectingIOReactor();
val mgr = new PoolingNHttpClientConnectionManager(ioreactor);
mgr.setDefaultSocketConfig(socketConfig);
mgr.setDefaultConnectionConfig(connectionConfig);
mgr.setDefaultMaxPerRoute(100)
mgr.setMaxTotal(200)
val httpclient = HttpAsyncClients.createMinimal(mgr);
httpclient.start()
httpclient
}
}
最佳答案
CloseableHttpAsyncClient client = HttpAsyncClients.custom()
.setRedirectStrategy(LaxRedirectStrategy.INSTANCE)
.build();
HttpAsyncClients#createMinimal
创建的最小客户端使用与其“成熟的”副本完全相同的连接管理代码。它与它的不同之处在于仅提供最小的协议(protocol)管道,以便在人们准备牺牲非必要的协议(protocol)方面时提供更好的性能:代理支持、重定向、身份验证和状态管理。因此,最小实现根本不处理重定向。
关于java - 如何在 apache 异步 http 客户端中设置重定向策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19821742/
我是一名优秀的程序员,十分优秀!