我正在开发一个 grails 应用程序,并且已经尝试从请求中获取 html 代码几个小时了。我想要做的是获取纯 html(就像在网页源中,包含所有标签和内容),以便我可以处理它。
我已经设法使用以下代码为我的获取请求获取它:
url = ("http://google.com").toURL().getText())
它工作得很好,但我还需要能够发出发布请求。
我尝试过使用 httpBuilder,但我得到的响应看起来像格式良好的文本(带有空格和其他内容),但没有任何 html 标签,而我需要它们。我正在使用的代码如下所示:
def url = "http://urlToRemoteServer.com/"
def http = new HTTPBuilder(url);
http.post( path: 'pathToMyApp',
requestContentType: "text/xml" ) { resp, reader ->
println "Tweet response status: ${resp.statusLine}"
assert resp.statusLine.statusCode == 200
System.out << reader
}
谁能告诉我如何获取该html代码?我正在研究 groovy,但 Java 解决方案也同样好。
最佳答案
更改帖子 map 以包含 contentType
以强制进行纯文本解析(并且,我相信更改为 Accepts
header ),如下所示:
http.post( path: 'pathToMyApp',
requestContentType: "text/xml",
contentType: "text/xml") { resp, reader ->
或者,您可以通过添加 ParserRegistry
来更改此请求和 future 请求的解析器。在构造函数之后重新映射:
http.parser.'text/html' = http.parser.'text/plain'
您还可以添加对 setContentType()
的调用,在构造函数调用 HTTPBuilder
之后:
//...
def http = new HTTPBuilder(url); //existing code
http.contentType = ContentType.TEXT //new addition
http.post( path: 'pathToMyApp', //existing code
//...
关于groovy - 从 HTTP 请求获取纯 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13939354/