Skip to content

Instantly share code, notes, and snippets.

@pavelfomin
Last active July 8, 2024 14:40
Show Gist options
  • Save pavelfomin/8a7d2aa85560c86a14b7ddd7a21f6c14 to your computer and use it in GitHub Desktop.
Save pavelfomin/8a7d2aa85560c86a14b7ddd7a21f6c14 to your computer and use it in GitHub Desktop.

With groovyx.net.http.HTTPBuilder outdated and not ported to latest Groovy version, here is the simple code to do a REST call

        String json = new URL(url).getText(
            requestProperties: ['Authorization': 'Bearer ' + token]
        )

        JsonSlurper jsonSlurper = new JsonSlurper()
        Map content = jsonSlurper.parseText(json)

Better yet, newer java.net.http.HttpClient that comes w/ JRE can now be used:

HTTP GET

        HttpRequest request = HttpRequest.newBuilder()
           .uri(uri)
           .GET()
           .header("Authorization", "Bearer $token")
           .build()

       HttpClient client = HttpClient.newBuilder().build()
       HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString())

       if (response.statusCode() != 200) {
           throw new RuntimeException("Failed to execute HTTP GET: ${response.statusCode()}")
       }
       Map content = new JsonSlurper().parseText(response.body())

HTTP POST

        HttpRequest request = HttpRequest.newBuilder()
            .uri(new URI(env.portalSaveContractsUri))
            .POST(HttpRequest.BodyPublishers.ofString(json))
            .header("Authorization", "Bearer $token")
            .header("Content-Type", "application/json")
            .build()

        HttpClient client = HttpClient.newBuilder().build()
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString())

        if (response.statusCode() != 200) {
            throw new RuntimeException("Failed to execute HTTP POST: ${response.statusCode()}")
        }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment