If HttpClient is invoked with the interrupt status set, or a thread is interrupted while blocked in send, then InterruptedException will be thrown but the HTTP request continues in the background. Consider this simple example:
Thread.currentThread().interrupt();
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder().uri(uri)build();
HttpResponse<String> response = client.send(request, BodyHandlers.ofString());
InterruptedException will be thrown but if you monitor with strace or tcpdump then you'll see that the HTTP transaction continues in the background. The user of the API in the synchronous case does not have a handle to anything that can be used to cancel the operation.