// add appId and appKey from https://developer.nutritionix.com/admin/access_details def appId = "" def appKey = "" def apiEndpoint = "https://trackapi.nutritionix.com/v2/natural/nutrients" try { // do post request with appropriate keys URL url = new URL(apiEndpoint) HttpURLConnection connection = (HttpURLConnection)url.openConnection() // use input param 'query' to construct query details def data = "{\"query\":\"" + query + "\"}" connection.setDoOutput(true) connection.setDoInput(true) connection.setRequestMethod("POST") connection.setRequestProperty("Content-Length", "" + Integer.toString(data.getBytes().length)) connection.setRequestProperty("x-app-id", appId) connection.setRequestProperty("x-app-key", appKey) connection.addRequestProperty("Content-Type", "application/json") connection.connect(); DataOutputStream wr = new DataOutputStream (connection.getOutputStream()) wr.writeBytes (data) wr.flush() wr.close() InputStream response = connection.getInputStream() String content = new java.util.Scanner(response).useDelimiter("\\A").next() // parse json response def slurper = new groovy.json.JsonSlurper() def result = slurper.parseText(content) // set output param calories calories = result.foods[0].nf_calories // calculate walking duration def durationMinutes = (int)Math.ceil((calories/4)) // set output param walkingDuration walkingDuration = (durationMinutes == 1 ? durationMinutes + " minute" : durationMinutes + " minutes") } catch (Exception e) { println "Error retrieving calories: " + e.getMessage() }