Groovy HTTP GET JSON request with timeouts

Groovy
import groovy.json.JsonSlurper
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import java.time.Duration

def client = HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(3)).build()
def request = HttpRequest.newBuilder(URI.create('https://example.com/items/1'))
        .timeout(Duration.ofSeconds(5))
        .header('Accept', 'application/json')
        .GET()
        .build()
def response = client.send(request, HttpResponse.BodyHandlers.ofString())
if (response.statusCode() != 200) {
    throw new IllegalStateException("HTTP ${response.statusCode()}: ${response.body().take(200)}")
}
println new JsonSlurper().parseText(response.body())