Получить тело ответа об успехе в HTTPBuilder-NG
Я пытаюсь использовать Httpbuilder-NG в скрипте Gradle проекта Android Studio. Сценарий загружает некоторые файлы на веб-сервер для проверки, сервер отвечает "ок" или именем файла, который не был проверен.
я стараюсь
response.success { FromServer fs, Object body ->
println "Success: ${fs.statusCode}, Text is: ${body}, Properties are: ${body.properties}"
}
и результат всегда:
Success: 200, Text is: [102, 105, 108, 101], Properties are: [class:class [B, length:4]
Обратите внимание, что это массив из 4 элементов, а не текстовая строка. И массив остается неизменным независимо от того, возвращает ли сервер 'ok' или что-то еще. Я понимаю, что мой сервер может возвращать что-то нестандартное, но в Postman он работает нормально.
Я также пытался
response.success { FromServer fs, Object body ->
println "has body = ${fs.hasBody}"
println "content type = ${fs.contentType}"
println "charset = ${fs.charset}"
println "files uploaded, result = ${fs.reader.text}"
//println "Success: ${fs.statusCode}, Text is: ${body}, Properties are: ${body.properties}"
}
и результат всегда
has body = true
content type = text/html
charset = UTF-8
files uploaded, result =
т.е. пустая строка, где должно быть тело.
fs.hasBody возвращается true
Любая помощь будет оценена.
1 ответ
def httpBin = configure {
request.uri = 'http://groovy-lang.org/processing-xml.html'
}
def result = httpBin.get() {
response.success { fromServer,body ->
body
}
}
assert result instanceof groovy.util.slurpersupport.NodeChild
println result
Приведенный выше фрагмент кода возвращает весь текст внутри <body>
тег этой веб-страницы http//...processing-xml
Чтобы сузить свой результат, нужно разобрать groovy.util.slurpersupport.NodeChild
futher.