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()}")
}