Handle error HTTPBuilder groovy

Ryker Tyler September 21, 2020

I have this code snippet which will call an API and return a list of Users in List format:

return http.request(Method.GET, ContentType.JSON) {
uri.path = USERS_ENDPOINT
} as List<Map>

That example will work perfectly if there is no problem with the API. Now I want to handle the case where this API returns an error (such as 401, 500):

  • If the API call is successful, return the data as List<Map> immediately
  • If there is any problem, do something and go to the next line

I have tried this but it does not work:

http.request(Method.GET, ContentType.JSON) {
uri.path = USERS_ENDPOINT

response.success { res, reader ->
return reader as List<Map>
}

response.failed {
// do somthing here, a logging for example
log.warn "Failed"
}
}

// the next statement I want to execute after the API call has been failed

 Any idea on this?

1 answer

Suggest an answer

Log in or Sign up to answer
0 votes
Jia Jie
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
March 16, 2021

Hi Ryker,

You can try something like below:

def http = new HTTPBuilder('http://localhost:XXXX/rest/scriptrunner/latest/custom/getCurrentUser')
def test = http.request(Method.GET, ContentType.JSON) {
uri.path = "/rest/scriptrunner/latest/custom/getCurrentUser"

response.success = { res, reader ->
//return reader as List<Map>
log.warn("Success!" )
}

response.failure = { resp, reader ->
// do somthing here, a logging for example
log.warn("Failed!" )
}
}

return test
TAGS
AUG Leaders

Atlassian Community Events