HTTP

Jamritas.HTTPはウェブブラウザが持つXMLHttpRequestオブジェクトのラッパーライブラリです。

var client = new Jamritas.HTTP.Client;
client.get('index.html', null, function(response) {
    alert(response.text);
});

Jamritas.HTTP.Client

HTTPクライアントとなるオブジェクト。ウェブブラウザが提供するXMLHttpRequestオブジェクトを使用してウェブザーバとの通信を行います。

コンストラクタ

Jamritas.HTTP.Client([config])
新しいHTTPクライアントを作成します。configObjectのインスタンスを与えることによりreceiverusernamepasswordを設定することができます。
var client = new Jamritas.HTTP.Client({username: 'foo', password: 'bar'});

プロパティ

header
リクエストヘッダ。ヘッダ名からヘッダ値へのマップとして格納されます。
client.header['If-Modified-Since'] = 'Sun, 28 Aug 2005 07:37:09 GMT';
receiver
非同期通信完了時に実行されるレスポンスハンドラのレシーバとなるオブジェクト。receiverとして指定されたオブジェクトはハンドラ内でthisとして参照できます。
username
Basic認証に使用されるユーザー名。
password
Basic認証に使用されるパスワード。
onrequest

リクエストが送信される直前に呼び出される関数。receiverプロパティが設定されている場合、関数内でthisとして参照できます。

もし関数が例外を返しても無視され、処理が続行されます。

onresponse

レスポンスが受信された直後に呼び出される関数。receiverプロパティが設定されている場合、関数内でthisとして参照できます。

もし関数が例外を返しても無視され、処理が続行されます。

メソッド

get(path, [query, [handler]])

pathに対してGETリクエストを発行します。queryにはクエリ文字列かリクエストオブジェクトを指定します。handlerにはレスポンスハンドラを指定します。

handlerが与えられると通信は非同期的に行われます。通信が完了するとレスポンスオブジェクトを引数としてhandlerが呼び出されます。

Jamritas.HTTP.Threadのインスタンスを返します。

handlerが省略された場合は通信は同期的に実行され、通信が完了するまでメソッド呼び出しはブロックします。通信が完了すると戻り値としてレスポンスオブジェクト返します。

サーバからの応答が得られなかった場合にはErrorオブジェクトが作成され、同期通信時には例外として、非同期通信時にはレスポンスハンドラの引数として返されます。

post(path, body, [handler])

pathに対してPOSTリクエストを発行します。bodyにはリクエストボディ文字列かリクエストオブジェクトを指定します。handlerにはレスポンスハンドラを指定します。

リクエストヘッダにContent-TypeContent-Typeが指定されていなければ、application/x-www-form-urlencodedを設定します。

get()と異なり、第二引数は省略できません。

その他の挙動についてはget()と同様です。

head(path, query, [handler])

pathに対してHEADリクエストを発行します。

使い方はget()と同様です。

Jamritas.HTTP.Thread

Jamritas.HTTP.Clientのget()、post()から返されるオブジェクトです。通常ライブラリの利用者がこのオブジェクトのインスタンスを作成することはありません。

プロパティ

result
レスポンスハンドラの戻り値です。レスポンスハンドラが実行されるまで このプロパティは設定されません。

メソッド

abort()

非同期通信を中断します。通信が完了する前にこのメソッドが呼ばれるとレスポンスハンドラは実行されません。

非同期通信が完了し、レスポンスハンドラが呼ばれた後にこのメソッドを呼んでも何も起こりません。

リクエストオブジェクト

リクエストオブジェクトはHTTPリクエスト時のパラメータを格納したObjectのインスタンスであり、変数名から変数値へのマップとして表現されます。変数値には配列を与えることもでき、その場合には内容が自動的に展開されます。例えば以下のリクエストオブジェクトは

{name1: 'value1', name2: ['item1', 'item2']}

次のようにエンコードされリクエストとして送信されます。

name1=value1;name2=item1;name2=item2

レスポンスオブジェクト

レスポンスオブジェクトはHTTPレスポンスの情報を格納したObjectのインスタンスです。レスポンスオブジェクトは以下のプロパティを持ちます。

status
ステータスコード
text
レスポンス本体
xml
レスポンスから構築されるXMLDOMツリーのルート要素(取得可能な場合のみ)
header
レスポンスヘッダ

SourceForge.net Logo