Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Post Method for script runner

Pradeep A
Contributor
June 29, 2021

Hi can somebody post your script for Posting Json information to a web API using script runner. I couldn't find it

1 answer

Suggest an answer

Log in or Sign up to answer
0 votes
PD Sheehan
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.
June 29, 2021

I like to use HttpBuilder or its simplified RESTClient

The simplest way to make a POST request is with the RESTClient

 

import groovyx.net.http.HTTPBuilder
import groovyx.net.http.RESTClient
import groovyx.net.http.Method
import groovyx.net.http.ContentType

def url = "https://some.domaim/"
def rest = new RESTClient(url)
def payload = [key:'value']
try{
def response = rest.post(path:'endpointpath'. body:payload,requestContentType:ContentType.JSON)
if(response.status == 200){
return "Success"
}
} catch(ex){
return "POST failed with status: $ex.response.status"
}
Pradeep A
Contributor
June 29, 2021

I'm getting this error "illegal colon after argument line "

PD Sheehan
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.
June 29, 2021

This was just an example, ultimately, you should review the documentation for ScriptRunner and HTTPBuilder.

But I see that I have a typo in my quickly put together example. I have dot where it should be a comma in the post method.

import groovyx.net.http.HTTPBuilder
import groovyx.net.http.RESTClient
import groovyx.net.http.Method
import groovyx.net.http.ContentType

def url = "https://some.domaim/"
def rest = new RESTClient(url)
def payload = [key:'value']
try{
def response = rest.post(path:'endpointpath', body:payload, requestContentType:ContentType.JSON)
if(response.status == 200){
return "Success"
}
} catch(ex){
return "POST failed with status: $ex.response.status"
}
TAGS
AUG Leaders

Atlassian Community Events