allをダウンロードして、target/dependenciesのjarとhttp-builder自体のjarをlibへコピっと。
Basic認証して、htmlを取得するサンプル。
取得したhtmlはxmlSlurperへ変換し操作しやすいように。
import groovyx.net.http.*
import static groovyx.net.http.Method.*
import static groovyx.net.http.ContentType.*
// basic認証用にbase64したID/Passを作成
def testBytes = "user:pass".getBytes("ISO-8859-1")
def encoded=testBytes.encodeBase64()
def http = new HTTPBuilder("http://hogehoge.jp/requiredBasicAuth")
http.headers=["Authorization":"Basic ${encoded}"]
try {
http.get(contentType:TEXT) { resp, reader ->
def page = new XmlSlurper(new org.cyberneko.html.parsers.SAXParser()).parseText(reader.text)
def data = page.depthFirst()
data.each { println it }
}
} catch(Exception e) {
println "auth failure"
}
headerの調整とかpost指定とかなしで、簡単にとりたいだけだったら、上のCyberNekoのSlurperを使っている所を使うと簡単
def page = new XmlSlurper(new org.cyberneko.html.parsers.SAXParser()).parse("http://www.google.co.jp")
def data = page.depthFirst()
data.each { println it }
こんだけでオッケー!
getのオプションで使う query がうまく動かなかったのが気になる所・・・
0 件のコメント:
コメントを投稿