##Request RequestはHTTPアクセスに必要な情報を持っています。
どのような値が設定されているか確認するには、次のメソッド(変数)で確認します。
class Request {
val body: Option[HttpEntity]
val creds: Option[Credentials]
val headers: Headers
val host: HttpHost
val method: String
val path: String
}
####Constructor
-
/\
EmptyのRequestを作成します。 -
:/(host, port)
hostドメインとportからRequestを作成します。 hostは www.dlrowb.com の形で指定します。 Request.hostが http://host:port となります。 -
:/(host)
hostドメインからRequestを作成します。 portの無いバージョンです。 -
/(path)
pathからRequestを作成します。 pathは /foo/bar の形で指定します。 Request.pathが/pathとなります。 Request.hostは設定されません。 -
url(url)
urlからRequestを作成します。 urlは http://host/path の形で指定します。 Request.hostが http://host となります。 Request.pathが/pathとなります。
####Path
-
<<?(values)
Request.pathにパラメータを追加します。 valuesにはMap(“key1″ -> “value1″, “key2″ -> “value2″)の形で指定します。 Request.pathは/xxx/?key1=value1&key2=value2となります。 -
/(path)
pathを追加します。 Request.pathが/xxx/pathとなります。
####Content
-
<<<(text)
textをRequest.bodyに追加します。 Request.methodをPUTに変更します。 -
<<<(file, content_type)
content_typeを指定したfileをRequest.bodyに追加します。 content_typeはtext/html、application/pdfのように指定します。 Request.methodをPUTに変更します。 -
<<<(values)
valuesをurlエンコードし、Request.bodyに追加します。 valuesはMap(“key” -> “value”)の形で指定します。 Request.methodをPUTに変更します。
####Transform
-
<:<(map)
mapはMap(“key” -> “value”)の形で指定します。 Request.headersに(key, value)を追加します。 -
as(user, password)
basic認証もしくはdigest認証を行うように設定します。 Request.credsにSome(Credentials(user,password))を設定します。 -
as_!(user, password)
basic認証のときに401レスポンスを待ちません。 Request.credsにSome(Credentials(user,password))を設定します。 -
gzip
Request.headersに(Accept-Encoding,gzip)を追加します。 (HTTP応答がgzip圧縮されます。) -
POST
Request.methodをPOSTにします。 -
PUT
Request.methodをPUTにします。 -
DELETE
Request.methodをDELETEにします。 -
HEAD
Request.methodをHEADにします。
####Misc
-
secure
SSL通信を有効にします。 Request.hostを@https://…にします -
<&(request)
requestに指定したRequestと統合します。 引数のrequestが優先されます。 -
>\(charset)
character setをcharsetで指定したものに変更します。 -
to_uri
hostとpathからuriを返します。
##Handler Handlerは通信により得られたデータを処理する方法を提供します。 RAWデータ、文字列データ、HTMLデータ、XMLデータ、JSONデータなどレスポンスタイプ毎に異なる型の記述方法(演算子)が用意されています。
####Function
-
>>((in, charset) => result)
charsetを変更した入力を、in: java.io.InputStreamとして引数に取ります。 -
>>((in) => result)
in: java.io.InputStreamとして引数に取ります。 -
>~((source) => result)
source: scala.io.Sourceとして引数に取ります。 -
>-((text) => result)
text: Stringとして引数に取ります。 -
>>~((reader) => result)
reader: java.io.Readerとして引数に取ります。 -
<>((elem) => result)
elem: xml.Elem(XML)として引数に取ります。 -
</>((nodeseq) => result)
nodeseq: xml.NodeSeq(XHTML)として引数に取ります。 dispatch.XhtmlParsingをインポートする必要があります。 -
>#((json) => result)
json: dispatch.json.JsValueとして引数に取ります。 (この機能を使う場合、dispatch.jsonとdispatch.json.JsHttpをimportする必要があります。) -
>|
入力を捨てます。
####Method
-
~>((conversion) => result)
Handler[T]型の結果Tについて処理を行い、結果Rを返します。 -
>!(listener)
ExceptionListenerを追加します。
####Misc
-
as_source
>~ {s => s} と同じです。 -
as_str
>- {t => t} と同じです。 -
>>>(out)
out: java.io.OutputStreamとして >> {in => out} と同じです。 (適切に変換されると仮定しています) -
>:>((map) => result)
map: Map[String,Set[String]]型のレスポンスヘッダを引数に取ります。 -
>+(block)
blockはr: Requestを取り、(h1: Handler, h2: Handler)の二つのHandlerを返り型に取ります。 同一のリクエストに対して、二つの異なる処理を行う場合に使います。 -
>+>(block)
blockはr: Requestを取り、Hanlder[Hanlder[T]]を返り型に取ります。 二つのHandlerを順番に処理します。
##Document
API
Periodic Table of Dispatch Operators
参考BLOG "B_____ World""