HTTPBuilder - Как я могу получить HTML-контент веб-страницы?

Мне нужно извлечь HTML веб-страницы, которую я использую HTTPuilder в Groovy, чтобы получить следующее получить:

def http = new HTTPBuilder('http://www.google.com/search')
http.request(Method.GET) {
 requestContentType = ContentType.HTML
 response.success = { resp, reader ->
  println "resp: " + resp
  println "READER: " + reader
 }
 response.failure = { resp, reader ->
  println "Failure"
 }
}

Ответ, который я получаю, не содержит того же HTML-кода, который я вижу при изучении HTML-источника www.google.com/search. Фактически, это не html, и он не содержит ту же информацию, которую я вижу в источнике html страницы. Я попытался установить разные заголовки (например, headers.Accept = 'text/html,application/xhtml+xml,application/xml;q=0,9,/; q = 0,8', headers.Accept = 'text/html', установка user-agent и т. д.), но результат тот же. Как я могу получить HTML-код www.google.com/search (или любой веб-страницы), используя http builder?

2 ответа

Потому что httpbuilder автоматически проанализирует результат по типу контента. чтобы получить необработанный HTML, попробуйте получить текст от Entity

def htmlResult = http.get(uri: url, contentType: TEXT){ resp->
    return resp.getEntity().getContent().getText()
}

Зачем использовать httpBuilder? Вы могли бы вместо этого использовать

def url = "http://www.google.com/".toURL() 

println url.text`

извлечь содержимое веб-страницы

Другие вопросы по тегам