import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Main {
    public static void main(String[] args) {
        try (HttpClient hc =
                     HttpClient.newBuilder().followRedirects(HttpClient.Redirect.NORMAL).build();) {
            System.out.println("httpclient - start");
            final HttpResponse<byte[]> res = hc.send(
                    HttpRequest.newBuilder(new URI("https://www.treasury.gov/ofac/downloads/sdn.xml")).build(), HttpResponse.BodyHandlers.ofByteArray());
            System.out.println("httpclient - statuscode: " + res.statusCode());
            System.out.println("httpclient - received " + res.body().length + " bytes");
        } catch (IOException | InterruptedException e) {
            e.printStackTrace(System.out);
        } catch (URISyntaxException e) {
            throw new RuntimeException(e);
        }
        System.out.println("httpclient - end");
    }
}