Вместо ручной установки заголовков и вызова метода с неправильным ContentType, как предлагается в принятом ответе, было бы чище и проще переписать синтаксический анализатор для application/json
.
def http = new HTTPBuilder()
http.parser.'application/json' = http.parser.'text/plain'
Это приведет к тому, что ответы JSON будут обрабатываться так же, как и простой текст. Обработчик простого текста дает вам InputReader
вместе с HttpResponseDecorator
. Чтобы использовать Джексона для привязки ответа к вашему классу, вам просто нужно использовать ObjectMapper
:
http.request( GET, JSON ) {
response.success = { resp, reader ->
def mapper = new ObjectMapper()
mapper.readValue( reader, Customer.class )
}
}