Получить тело ответа об успехе в HTTPBuilder-NG - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь использовать Httpbuilder-NG в скрипте Gradle проекта Android Studio.Сценарий загружает некоторые файлы на веб-сервер для проверки, сервер отвечает 'ok' или именем файла, который не был проверен.

Я пытаюсь

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 Ответ

0 голосов
/ 24 мая 2018
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 дальше.

...