HTTP Post из задачи Gradle - Groovy - PullRequest
       16

HTTP Post из задачи Gradle - Groovy

0 голосов
/ 26 сентября 2018

Я звоню Http Post с помощью плагина io.github.http-builder-ng.http-plugin.Ниже мой build.gradle

plugins {
     id "io.github.http-builder-ng.http-plugin" version "0.1.1"
}

import groovyx.net.http.HttpBuilder

task makeRESTCall () {
onlyIf {
    !dependencyList.empty
}
doFirst {
    println dependencyList
    def http = HttpBuilder.configure {
        request.uri = 'http://localhost:8080'
        request.contentType = 'application/json'
        request.uri.path = '/api/v1/fosscomponents/bulkvalidate'
    }
    http.post {
        request.body=dependencyList
        response.success {
            println "Success"
        }
    }
}

}

Это мой dependencyList параметр, который отправляет request.body

[

{
    "groupId":"org.hibernate",
    "artifactId":"hibernate-validator",
    "version":"5.3.6.Final"
}, 
{
    "groupId":"org.projectlombok",
    "artifactId":"lombok",
    "version":"1.16.22"
}, 
{
    "groupId":"io.springfox",
    "artifactId":"springfox-swagger-ui",
    "version":"2.8.0"
}
]

Мой код Java в моемAPI бэкэнда (написанный на Spring Boot) просто печатает в этом формате

incomingLists.stream().forEach(
            obj -> System.out.println(obj.getGroupId()+" **** "+obj.getArtifactId()+" **** "+obj.getVersion())
        );

Когда я нажимаю на этот API от моего почтальона, ответ правильный - см. ниже распечатайте код

org.hibernate **** hibernate-validator **** 5.3.6.Final
org.projectlombok **** lombok **** 1.16.22

тогда как, когда я нажимаю на тот же API из своей задачи, мой java-код печатает его таким образом ..

null **** null **** null
null **** null **** null

Я не уверен, что что-то пропустил

1 Ответ

0 голосов
/ 26 сентября 2018

Я решил это !!request.body, как показано выше, просто отправляет dependencyList как сам объект списка, а не как String, как ожидается API.

, поэтому я изменил его на способ ниже, и он работал как ожидалось:)

http.post {
        request.body=dependencyList.toString()
        response.success {
            println "Success"
        }
 }
...