Синтаксис Groovy для дублирования PowerShell Invoke-RestMethod - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь продублировать PowerShell Invoke-RestMethod на что-то похожее в Groovy (groovy является стандартом, который мы используем в нашем кодированном конвейере).

Я провел много поисков без успеха. Мне было интересно, могу ли я получить некоторую помощь или предложения относительно возможной альтернативы, если нет подобного звонка?

3 три строки PowerShell, которые я пытаюсь воспроизвести в Groovy:

$tokenrequest = @{ "grant_type" = "password"; "username" = "adminuser"; "password" = "adminpassword" }
$token = Invoke-RestMethod -Uri "http://abcd.com/executionmanager/api/Token" -ContentType application/x-www-form-urlencoded -Headers @{ Authorization = ("OAuth2")} -Method POST -Body $tokenrequest
$token = $token.access_token

1 Ответ

0 голосов
/ 03 ноября 2018

Есть много библиотек для этого

следующий совершенно неизвестный

//download dependency from maven repository
@Grab(group='acme.groovy', module='acmehttp', version='20180403')
import groovyx.acme.net.AcmeHTTP

def ctx = AcmeHTTP.post(
    url:   "https://httpbin.org/post", //the url could be used for tests 
    //define body as map as soon as we are sending it as www-form
    body: [ "grant_type": "password", "username": "adminuser", "password": "adminpassword" ],
    headers:[
        "content-type":"application/x-www-form-urlencoded",
        "Authorization": "OAuth2"
    ],
)
assert ctx.response.code==200
//the url https://httpbin.org/post always returns json
assert ctx.response.contentType =~ "/json"
assert ctx.response.body instanceof Map

println ctx.response.body
//i guess your token should be accessible like this:
//println ctx.response.body.access_token
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...