Essas URLs que você vai checar retorna HTML e você precisa manipular esse HTML? Ou apenas retornam conteúdo JSON? Ou você quer apenas checar se dá pra conectar com essa URL? Quero aproveitar também pra perguntar qual a versão do Java porque se for o Java 11 tem um HttpClient bem fácil de usar.
o retorno vem em JSON, uso Scanner para ler tudo, depois obtenho oque preciso. Uso java 8.
tenho muitas duvidas de como fazer conectar mais rapido, pq pra ler, é mt rápido.
Que estranho ter tanta diferença assim. Eu testei usando Scanner e não demorou tanto. E o que é o ProxyChecker no seu código?
E, sim, precisa fechar o recurso, mas apenas do BufferedReader. Todos os outros recursos encapsulado pelo BufferedReader é fechado automaticamente ao invocar close() no objeto BufferedReader.
Pode testar esse código e vê se continua demorando muito?
class Main {
public static void main(String[] args) throws Exception {
URL url = new URL("https://ENDEREÇO_DA_SUA_API_AQUI");
HttpURLConnection conexao = (HttpURLConnection) url.openConnection();
conexao.setRequestMethod("GET");
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(conexao.getInputStream()))) {
String todoConteudoRetornado = bufferedReader
.lines()
.collect(Collectors.joining("\n"));
System.out.println(todoConteudoRetornado);
} // todos os recursos estão devidamente fechados quando chega aqui
}
}
Sim, usando o try-with-resources os recursos declarados dentro do try são fechados automaticamente.
https:
Conexão com a URL feita em -> 6966
Isso é usando o código de exemplo que te passei? Então, testa com outras URL qualquer como “https://google.com” ou “https://g1.globo.com” e vê se demora do mesmo jeito. Se só a URL da sua API que demora, então o problema não é o código. Se qualquer URL demora, talvez (apenas, talvez) o problema seja a sua conexão ou rede, pois é estranho o mesmo código ter tanta diferença.