2009/01/10

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\{ユーザー名}、Linuxの場合には/home/{ユーザー名})

  • 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するとログインできます。

ログインして、その後にアプリの別ページの情報が表示できるか試してみたところ、ちゃんと表示できました。

スクリプトの処理中は、ログイン後のセッション情報がちゃんと残るみたいですね。

0 件のコメント:

コメントを投稿