user965697
user965697

Reputation: 137

Get html body from response in groovy

I'm trying to see if a specific string exists in an html page but I can't seem to find an easy way to get the string that represents the body.

I've attempted:

http.request(Method.GET, { req ->
        uri.path = '/x/app/main'
        response.success = { resp, reader ->
            assert resp.status == 200
            println reader.text.startsWith('denied')
        }

        response.failure = { resp ->
            fail("Failure reported: ${resp.statusLine}")
        }
    })

but reader.text is a NodeChildren object.

How do I get the html (or more specifically, the contexts of the body) as a string?

Upvotes: 2

Views: 2495

Answers (1)

ataylor
ataylor

Reputation: 66069

You can get an input stream directly off of the response. Try this:

http.request(Method.GET, { req ->
    uri.path = '/x/app/main'
    response.success = { resp ->
        assert resp.status == 200
        println resp.entity.content.text.startsWith('denied')
    }

    response.failure = { resp ->
        fail("Failure reported: ${resp.statusLine}")
    }
})

Upvotes: 3

Related Questions