Java HTTP GET JSON with timeout client
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;
public final class JsonGet {
private static final HttpClient CLIENT = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(5)).build();
public static String get(String url, Duration timeout) throws Exception {
HttpRequest req = HttpRequest.newBuilder(URI.create(url))
.timeout(timeout).header("Accept", "application/json").GET().build();
HttpResponse<String> res = CLIENT.send(req, HttpResponse.BodyHandlers.ofString());
if (res.statusCode() / 100 != 2) throw new IllegalStateException("HTTP " + res.statusCode());
return res.body();
}
}