Ligação a mesma URL em diferentes threads usando HttpClient
-
16-09-2019 - |
Pergunta
O que é o método correto para obter o conteúdo de um URL em vários segmentos usando HttpClient em java?
Por exemplo carregamento de uma lista com itens, carregando cada item em um segmento diferente ao mesmo tempo e obter a informação a partir da mesma URL com parâmetros diferentes.
Em um aplicativo que estou criando isso me dá nenhum elemento encontrado exceção ao ler XML a partir do mesmo URL em diferentes tópicos ..
Solução
Eu suponho que você usar HttpClient 3.0. Tente isso,
HttpClient client = new HttpClient(new MultiThreadedHttpConnectionManager());
Outras dicas
Porque a resposta aceita descirbes um solutuion para HttpClient única 3.x, ea versão atual é 4.1 (Isto também está incluído no Android), eu gostaria de compartilhar um exemplo 4.x trabalhando. Talvez que salva alguém alguma confusão.
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
schemeRegistry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
HttpParams parameters = new BasicHttpParams();
ClientConnectionManager connectionManager = new ThreadSafeClientConnManager(parameters, schemeRegistry);
HttpClient httpClient = new DefaultHttpClient(connectionManager, parameters);
ThreadSafeClientConnManager
também depreciado em 4.2. Em vez de uso org.apache.http.impl.conn.PoolingHttpClientConnectionManager
Se você colocar os dados em âmbito de aplicação deve estar disponível de qualquer segmento. Você não deve usar isso se os dados forem sensíveis, e lembre-se de removê-lo explicitamente quando você é feito com ele, tal como existe através da vida do servidor se não forem removidos.