HTTPBuilderを使ってみる
uehajさんのところでHTTPBuilderのエントリを見てから、ずっとHTTPBuilder使ってみたいと思っていたのですが、ようやく試すことができました。
同じGroovyであるGrails+Acegiプラグインで作成したサイトにログインできるかどうか試してみることにします。
早速環境構築。
入手
HTTP Builder – Download より、以下のファイルをダウンロード。
- http-builder-0.3.0-all.zip
環境構築
ダウンロード後、上記ファイルを解凍する。
target
フォルダに含まれている以下のファイルを、 ${USER_HOME}/.groovy/lib
フォルダに配置する。
(${USER_HOME}
は、Windowsの場合には C:\Documents And Settings\${ユーザー名}
)
- http-builder-0.3.0.jar
- dependenciesフォルダ内のすべてのjarファイル
実行
import groovyx.net.http.*
import static groovyx.net.http.Method.GET
import static groovyx.net.http.ContentType.TEXT
def host = "test-server.com"
def appName = "grails-test"
def username = "test-user"
def password = "test-password"
def http = new HTTPBuilder("http://${host}")
http.post(path: "/${appName}/j_spring_security_check",
contentType: TEXT,
params: [j_username: username, j_password: password]) { resp, reader ->
println "response status: ${resp.statusLine}"
println "Response data: -----"
System.out << reader
println "n--------------------"
}
http.get(path: "/${appName}/item/index",
contentType: TEXT) { resp, reader ->
println "response status: ${resp.statusLine}"
println "Response data: -----"
System.out << reader
println "n--------------------"
}
ここでは、
- サーバー名:
test-server.com
- Grailsアプリ名:
grails-test
- ユーザー名:
test-user
- パスワード:
test-password
として、環境を作成したWEBアプリにログインしてみた。
GrailsにAcegiプラグインを入れた場合、ユーザー名(j_username)、パスワード(j_password)を入力し http://test-server.com/grails-test/j_spring_security_check
にPOSTするとログインできます。
ログインして、その後にアプリの別ページの情報が表示できるか試してみたところ、ちゃんと表示できました。
スクリプトの処理中は、ログイン後のセッション情報がちゃんと残るみたいですね。
ディスカッション
コメント一覧
まだ、コメントがありません