0
По какой-то причине HttpAsyncClient
не делает запрос, если setConnectionManagerShared
установлено на true
. Я нашел это bug, но не мог понять, чего я не вижу.HttpAsyncClient не делает запрос, если setConnectionManagerShared имеет значение true
Вот как я создаю новый клиент
def apply(proxy: Option[HttpHost], cookieStore: Option[CookieStore]) = {
val builder = HttpAsyncClients.custom.
setConnectionManager(connManager).
setConnectionManagerShared(true).
setDefaultCredentialsProvider(credentialsProvider).
setDefaultRequestConfig(defaultRequestConfig).
setSSLStrategy(sslStrategy)
proxy.map(builder.setProxy)
builder.setDefaultCookieStore(cookieStore.getOrElse(new BasicCookieStore)) // Use custom cookie store if necessary.
// Create an HttpClient with the given custom dependencies and configuration.
val client: HttpAsyncClient = new HttpAsyncClient(builder.build)
client
}
Полный класс Располагается here.
Что я должен изменить?
Спасибо! Возможно ли, что он не работает, потому что я вызываю 'setConnectionManagerShared' для каждого созданного клиента? И если да, значит, мне нужно «владеть» клиентом незакрытым? – expert
Должна быть служба, ответственная за запуск и закрытие лежащего в основе реактора ввода-вывода. Легче реализовать один клиент, владеющий «диспетчером соединений», но также может быть выполнен совершенно независимо. – oleg
Получил это. Тогда я буду держать одного фиктивного клиента в моем синглете. Мне кажется, это немного хаки. – expert