Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root


1 badge earned


Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!


Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.


Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!


Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
Community Members
Community Events
Community Groups

POST to Rest API Scriptrunner

Deleted user Sep 24, 2017

Hi Guys, 

Im attempting to post to a rest api but not sure if im doing right with the header.


1) i get the token via the following (works ok)

import static*
import static*
import groovy.json.JsonSlurper
import net.sf.json.groovy.JsonSlurper
import groovy.json.JsonOutput

def getToken(user, pw) {

def http = new HTTPBuilder('http://incognito/authentication')
http.request(POST) {
requestContentType = ContentType.JSON
body = [username: user, password: pw]

response.success = { resp, JSON ->

token = JSON.get('IncognitoUms auth')
return token

response.failure = { resp ->
return "Request failed with status ${resp.status}"


2) posting with header

def addModem(key) {

def http = new HTTPBuilder('incognito/devices/')
oui = "test"
model = 'test'
productClass = 'test'
subscriberId = 'test'
manufacturer = 'test'
description = ''

requestBody = """{
"oui": "${oui}",
"productClass": "${productClass}",
"serial": "${serial}",
"subscriberId": "${subscriberId}",
"manufacturer": "${manufacturer}",
"description": "${description}",
"deviceModel": {
"id": "${model}"

headerRequest = """{"authorization": "IncognitoUms auth=${key}",
"content-type": "application/json}"""

http.request(PUT) {
requestContentType = ContentType.JSON
body = requestBody
header = headerRequest

response.success = { resp, JSON ->

token = JSON.get('IncognitoUms auth')
return token

response.failure = { resp ->
return "Request failed with status ${resp.status}"


2nd method getting 403 response. 


Not sure where i can go with this, any help is much appreciated. 




2 answers

1 accepted

2 votes
Answer accepted
JamieA Rising Star Sep 25, 2017

First approach with things like this is to make sure you can make the request using curl, or postman or something, then turn it into code.

Other thing is you seem to be using two completely different URLs for making requests too, second one looks bogus.

Stylistically, it's much clearer and safe to write:

http.request(Method.PUT, ContentType.JSON) {
requestContentType = ContentType.JSON
body = [
productClass: 'test',
subscriberId: 'test',

rather than hand-rolling your own json from a string.

Ahh thank you Jamie! Much appreciated for your guidance. 

I ended up with the following:

def addModem(key, modemId) {

def http = new HTTPBuilder('http://incognito/devices')    

    http.request(POST, ContentType.JSON) {

        requestContentType = ContentType.JSON

        request.addHeader("authorization: IncognitoUms auth=${key}", "ContentType: application/json")

        body = [oui: "test",

               productClass: "test",

               serial: "test",

               subscriberId: "test",

               manufacturer: manufact,

               description: "",

               deviceModel: "{id: \"${modemId}\"}"]

        response.success = { resp, JSON ->

         return JSON

         response.failure = { resp, JSON ->

            return JSON





Many thanks, 

Hi @[deleted], 

I am wondering how the second part is receiving the token fetched in the first part. Can you please share the full script that gets the token, inserts it in to the headers and makes a REST call ?  Thanks



Like Tadd Simmons likes this

Suggest an answer

Log in or Sign up to answer

Atlassian Community Events