public class ResponseBody
extends java.lang.Object
レスポンスボディの内容を以下の3つの方式のいずれかによって指定する。
(排他利用)
1. コンテンツパスによる静的リソースの指定。
HttpResponse.setContentPath(ResourceLocator)
2. 入力ストリームによる指定。
HttpResponse.setBodyStream(InputStream)
3. 内部バッファへの書き込み。
HttpResponse.write(byte[])
HttpResponse.write(CharSequence)
内部バッファは一定サイズまではヒープ領域上に置かれるが、それを超えた
場合は一時ファイルに出力される。
入力ストリーム一時ファイルは、レスポンス処理終了後に
HttpResponseHandler が cleanup() を呼ぶことで
自動的に削除される。HttpResponse,
HttpResponseHandler| コンストラクタと説明 |
|---|
ResponseBody(HttpResponse response)
コンストラクタ
|
| 修飾子とタイプ | メソッドと説明 |
|---|---|
static void |
addTempFileToDelete(java.io.File file)
削除しなければならない一時ファイルに追加する。
|
static void |
cleanup()
カレントスレッドがIO用に確保しているリソースを全て開放する。
|
ResourceLocator |
getContentPath()
コンテンツパスを取得する。
|
java.io.InputStream |
getInputStream()
ボディの内容を格納した入力ストリームを返す。
|
boolean |
isEmpty()
ボディの内容が設定されていなければtrueを返す。
|
java.lang.Long |
length()
ボディの内容をヒープバッファに保持している場合、そのサイズを返す。
|
ResponseBody |
setContentPath(ResourceLocator path)
ボディのコンテンツパスを設定する。
|
ResponseBody |
setInputStream(java.io.InputStream input)
ボディの内容を格納した入力ストリームを設定する。
|
java.lang.String |
toString()
この実装ではボディの内容を表す文字列を返す。
|
ResponseBody |
write(byte[] bytes)
内部バッファにバイナリデータを書き込む。
|
ResponseBody |
write(java.nio.ByteBuffer bytes)
内部バッファにバイナリデータを書き込む。
|
ResponseBody |
write(java.lang.CharSequence text)
内部バッファにキャラクタデータを書き込む。
|
public ResponseBody(HttpResponse response)
response - HTTPレスポンス本体public boolean isEmpty()
public java.lang.Long length()
内部バッファを使用していない場合、もしくは、 内部バッファとして一時ファイルを使用している場合は null を返す。
public ResponseBody setContentPath(ResourceLocator path)
path - コンテンツパスpublic ResourceLocator getContentPath()
public ResponseBody write(byte[] bytes)
bytes - バイナリデータpublic ResponseBody write(java.lang.CharSequence text)
text - キャラクタデータpublic ResponseBody write(java.nio.ByteBuffer bytes)
要求サイズがヒープバッファの上限値を超過した場合、 一時ファイルへの書き出しが許可されていれば、 ヒープバッファを破棄し、以降は一時ファイルをバッファとして使用する。 (ヒープバッファは直近のGCにより開放される。) 一時ファイルへの書き出しが許可されていないばあい、 レスポンスコード400に相当するHTTPエラーを送出する。
bytes - バイナリデータpublic java.lang.String toString()
1. コンテンツパスが指定されている場合。
パス文字列を返す。
2. 入力ストリームもしくは一時ファイル上にバッファリングしている場合。
先頭16KBの内容をデコードした文字列を返す。
3. ヒープ上にバッファリングしている場合。
バッファの内容をデコードした文字列を返す。
toString クラス内 java.lang.Objectデコードに使用するコンバータpublic java.io.InputStream getInputStream()
1. コンテントパスのスキームが file:// もしくは classpath:// のいずれでもない場合 2. コンテントパスのスキームが file:// もしくは classpath:// だが、その参照先のファイルが存在しない場合。
public ResponseBody setInputStream(java.io.InputStream input)
input - 入力ストリームpublic static void addTempFileToDelete(java.io.File file)
cleanup()メソッドが呼ばれた際に指定された一時ファイルが削除される。file - 一時ファイルpublic static void cleanup()