public class HttpResponse extends java.lang.Object implements Result
setContentPath(String)
の値を設定することで後者の方式がとられるようになる。Modifier and Type | Class and Description |
---|---|
static class |
HttpResponse.Status
HTTPレスポンスステータス。
|
Result.ClientError, Result.Error, Result.MultiStatus, Result.NotFound, Result.Success
Modifier and Type | Field and Description |
---|---|
protected static java.lang.String |
CONTENT_DISPOSITION
Content-Dispositionヘッダ。
|
static java.lang.String |
LS
HTTP行終端文字(CRLF)
|
Constructor and Description |
---|
HttpResponse()
HttpResponse オブジェクトを生成する。
以下のHTTPレスポンスメッセージに相当するHttpResponse オブジェクトを生成する。 |
HttpResponse(int statusCode)
指定されたステータスコードの
HttpResponse オブジェクトを生成する。
このメソッドの処理は以下のソースコードと等価である。
|
HttpResponse(int statusCode,
java.lang.String contentPath)
指定されたHTTPステータスコードとコンテンツパスの
HttpResponse オブジェクトを生成する。
このメソッドの処理は以下のソースコードと等価である。
|
HttpResponse(java.lang.String contentPath)
指定されたコンテンツパスの
HttpResponse オブジェクトを生成する。
このメソッドの処理は以下のソースコードと等価である。
|
Modifier and Type | Method and Description |
---|---|
HttpResponse |
addCookie(HttpCookie cookie)
サーバ側から送信されたクッキー情報を設定する。
|
HttpResponse |
cleanup()
リソースを開放する。
|
java.io.InputStream |
getBodyStream()
HTTPレスポンスボディの内容を保持するストリームを取得する。
|
java.lang.String |
getBodyString()
HTTPレスポンスボディの内容を表す文字列を返す。
|
java.nio.charset.Charset |
getCharset()
Content-Typeに指定された文字エンコーディングを取得する。
|
java.lang.String |
getContentDisposition()
Content-Dispositionの値を取得する。
|
java.lang.String |
getContentLength()
Content-Lengthの値を取得する。
HTTPレスポンスボディの内容がこのオブジェクト自体に保持されている場合に限り、
そのバイト数を返す。
それ以外は null を返す。 |
ResourceLocator |
getContentPath()
コンテンツパスを取得する。
HTTPレスポンスボディに書き込むコンテンツパスを取得する。
|
java.lang.String |
getContentType()
Content-Typeの値を取得する。
Content-Typeが設定されている場合は、以下のソースコードと等価である。
|
HttpCookie |
getCookie()
Deprecated.
本メソッドは、複数のクッキー情報のうち先頭のクッキーを返すことしかできません。
複数のクッキー情報を返すことができる
getCookieList() を使用してください。 |
java.util.List<javax.servlet.http.Cookie> |
getCookieList()
サーバ側から送信されたクッキー情報のリストを取得する。
|
java.lang.String |
getHeader(java.lang.String headerName)
HTTPレスポンスヘッダの値を返す。
|
java.util.Map<java.lang.String,java.lang.String> |
getHeaderMap()
HTTPレスポンスヘッダを格納するMapを返す。
このMapに対する変更はレスポンスヘッダの内容に直接反映される。
|
java.util.List<HttpCookie> |
getHttpCookies()
サーバ側から送信されたクッキーのリストを
HttpCookie として取得する。
HttpCookie は同じ属性を持つ複数のクッキーを保持する仕様であるため、
クッキーの属性が各々異なることを考慮し、リストとして返却する。 |
java.lang.String |
getHttpVersion()
HTTPバージョンを表す文字列を返す。
|
java.lang.String |
getLocation()
Locationの値を取得する。
このメソッドの処理は以下のソースコードと等価である。
|
java.lang.String |
getMessage()
処理結果に対する詳細情報を返す。
返される詳細情報は以下の通りである。
|
java.lang.String |
getReasonPhrase()
HTTPレスポンスのステータスフレーズを返す。
|
int |
getStatusCode()
HTTPレスポンスのステータスコードの値を返す。
HTTPレスポンスがリダイレクトである場合は
302 を返す。 |
java.lang.String |
getTransferEncoding()
Transfer-Encodingの値を取得する。
このメソッドの処理は以下のソースコードと等価である。
|
boolean |
isBodyEmpty()
HTTPレスポンスボディの内容が設定されていなければ
true を返す。 |
boolean |
isSuccess()
処理が正常終了したかどうかを返す。
HTTPステータスコードが400未満であれば正常終了とみなす。
|
static HttpResponse |
parse(byte[] message)
HTTPレスポンスメッセージの内容から
HttpResponse オブジェクトを生成する。 |
static HttpResponse |
parse(java.lang.String message)
HTTPレスポンスメッセージの内容から
HttpResponse オブジェクトを生成する。 |
HttpResponse |
setBodyStream(java.io.InputStream bodyStream)
HTTPレスポンスボディの内容を保持するストリームを設定する。
|
HttpResponse |
setContentDisposition(java.lang.String fileName)
Content-Dispositionの値を設定する。
Content-Typeが明示的に設定されていない場合、
設定されたファイル名の拡張子に応じたContent-Typeを自動的に設定する。
本メソッドではattachment属性を指定するため、ダウンロード時にダイアログが必ず表示される。 |
HttpResponse |
setContentDisposition(java.lang.String fileName,
boolean inline)
Content-Dispositionの値を設定する。
Content-Typeが明示的に設定されていない場合、
設定されたファイル名の拡張子に応じたContent-Typeを自動的に設定する。
inline にtrue を指定した場合、ダウンロードされたファイルは
クライアントアプリで自動的に開かれる。ただし、実際にそのような挙動となるかどうかは、クライアントの設定 およびOSのセキュリティ設定に依存する。 |
HttpResponse |
setContentPath(ResourceLocator resource)
コンテンツパスを設定する。
指定した
ResourceLocator オブジェクトがnull でない場合は、
リソース名からContent-Typeを自動的に設定した後、コンテンツパスを設定する。ResourceLocator オブジェクトがnull の場合は、コンテンツパスのみ設定する。 |
HttpResponse |
setContentPath(java.lang.String path)
コンテンツパスを設定する。
本処理は
setContentPath(ResourceLocator) に委譲する。 |
HttpResponse |
setContentType(java.lang.String contentType)
Content-Typeを設定する。
Content-Typeのデフォルト値は、"text/plain;charset=UTF-8" である。
ボディに書き込む内容をコンテンツパスで指定する場合、 Content-Typeはコンテンツパスの拡張子から自動的に決定される為、 このメソッドを明示的に使用する必要は無い。 |
HttpResponse |
setCookie(HttpCookie cookie)
Deprecated.
本メソッドは、複数のクッキー情報を設定することを意図したメソッド名を持つ
addCookie(HttpCookie) に置き換わりました。 |
void |
setHeader(java.lang.String headerName,
java.lang.String value)
HTTPレスポンスヘッダの値を設定する。
|
HttpResponse |
setHttpVersion(java.lang.String httpVersion)
HTTPバージョンを設定する。
デフォルト値は "HTTP/1.1" である。
|
HttpResponse |
setLocation(java.lang.String location)
Locationの値を設定する。
リダイレクト時のHTTPクライアントの遷移先URIを設定する。
デフォルトでは設定されない。 |
HttpResponse |
setStatusCode(int code)
HTTPレスポンスのステータスコードを設定する。
デフォルトのステータスコードは
200 である。 |
HttpResponse |
setTransferEncoding(java.lang.String encoding)
Transfer-Encodingの値を設定する。
このヘッダの値が"chunked"であった場合、
コンテンツボディはchunked-encodingに従って読み書きされる。
デフォルトではこのヘッダは設定されない。 |
java.lang.String |
toString()
オブジェクトの内容と等価なHTTPレスポンスメッセージを返す。
|
HttpResponse |
write(byte[] bytes)
HTTPレスポンスボディにバイト配列を書き込む。
このメソッドで書き込まれたデータは、本オブジェクトが保持する
バッファに保持され、クライアントソケットに対する書き込みは一切発生しない。
(このライタに対するflush()は単に無視される。)
実際にソケットに対するレスポンス処理が行われるのは、 HttpResponseHandler にレスポンスオブジェクトが戻された後である。
また、このオブジェクトにコンテンツパスが設定されている場合、
このライタに書き込まれた内容は単に無視される。 |
HttpResponse |
write(java.nio.ByteBuffer bytes)
HTTPレスポンスボディにバイト配列を書き込む。
このメソッドで書き込まれたデータは、本オブジェクトが保持する
バッファに保持され、クライアントソケットに対する書き込みは一切発生しない。
(このライタに対するflush()は単に無視される。)
実際にソケットに対するレスポンス処理が行われるのは、 HttpResponseHandler にレスポンスオブジェクトが戻された後である。
また、このオブジェクトにコンテンツパスが設定されている場合、
このライタに書き込まれた内容は単に無視される。 |
HttpResponse |
write(java.lang.CharSequence text)
HTTPレスポンスボディに文字列を書き込む。
このメソッドで書き込まれたデータは、本オブジェクトが保持する
バッファに保持され、クライアントソケットに対する書き込みは一切発生しない。
(このライタに対するflush()は単に無視される。)
実際にソケットに対するレスポンス処理が行われるのは、 HttpResponseHandler にレスポンスオブジェクトが戻された後である。
また、このオブジェクトにコンテンツパスが設定されている場合、
このライタに書き込まれた内容は単に無視される。 |
public static final java.lang.String LS
protected static final java.lang.String CONTENT_DISPOSITION
@Published public HttpResponse()
HttpResponse
オブジェクトを生成する。
以下のHTTPレスポンスメッセージに相当するHttpResponse
オブジェクトを生成する。
HTTP/1.1 200 OK Content-Type: text/plain;charset=UTF-8
@Published public HttpResponse(int statusCode)
HttpResponse
オブジェクトを生成する。
このメソッドの処理は以下のソースコードと等価である。
new HttpResponse().setStatusCode(statusCode);
statusCode
- HTTPステータスコード@Published public HttpResponse(int statusCode, java.lang.String contentPath)
HttpResponse
オブジェクトを生成する。
このメソッドの処理は以下のソースコードと等価である。
new HttpResponse().setStatusCode(statusCode)
.setContentPath(contentPath);
statusCode
- HTTPステータスコードcontentPath
- コンテンツパス@Published public HttpResponse(java.lang.String contentPath)
HttpResponse
オブジェクトを生成する。
このメソッドの処理は以下のソースコードと等価である。
new HttpResponse().setStatusCode(200)
.setContentPath(contentPath);
contentPath
- コンテンツパスpublic static HttpResponse parse(java.lang.String message)
HttpResponse
オブジェクトを生成する。message
- HTTPレスポンスメッセージHttpResponse
オブジェクトpublic static HttpResponse parse(byte[] message)
HttpResponse
オブジェクトを生成する。message
- HTTPレスポンスメッセージHttpResponse
オブジェクト@Published public int getStatusCode()
302
を返す。getStatusCode
in interface Result
setStatusCode(int)
@Published public HttpResponse setStatusCode(int code)
200
である。code
- HTTPステータスコードjava.lang.IllegalArgumentException
- 指定されたステータスコードが無効な場合@Published public java.lang.String getReasonPhrase()
@Published public java.lang.String getMessage()
(ステータスコード): (ステータスフレーズ)
getMessage
in interface Result
@Published public java.lang.String getHttpVersion()
public HttpResponse setHttpVersion(java.lang.String httpVersion)
httpVersion
- HTTPバージョン名java.lang.IllegalArgumentException
- HTTPバージョンの書式が無効な場合@Published public java.util.Map<java.lang.String,java.lang.String> getHeaderMap()
@Published public java.lang.String getHeader(java.lang.String headerName)
headerName
- ヘッダー名@Published public void setHeader(java.lang.String headerName, java.lang.String value)
headerName
- ヘッダー名value
- ヘッダーの値@Published public java.lang.String getContentType()
this.headers().get("Content-Type")
Content-Typeが設定されていない場合は、以下の処理を行う。WebConfig.getAddDefaultContentTypeForNoBodyResponse()
がtrueの場合、
またはボディが存在する場合に"text/plain;charset=UTF-8"を設定する。public java.nio.charset.Charset getCharset()
@Published public HttpResponse setContentType(java.lang.String contentType)
contentType
- Content-Typeの値getContentType()
@Published public java.lang.String getLocation()
this.headers().get("Location")
@Published public HttpResponse setLocation(java.lang.String location)
location
- 遷移先URIHttpResponse.Status.SEE_OTHER
@Published public HttpResponse setContentDisposition(java.lang.String fileName)
fileName
- ファイル名@Published public HttpResponse setContentDisposition(java.lang.String fileName, boolean inline)
inline
にtrue
を指定した場合、ダウンロードされたファイルは
クライアントアプリで自動的に開かれる。fileName
- ファイル名inline
- インライン表示する場合はtrue
@Published(tag="architect") public java.lang.String getContentDisposition()
public java.lang.String getTransferEncoding()
this.headers().get("Transfer-Encoding")
public HttpResponse setTransferEncoding(java.lang.String encoding)
encoding
- Transfer-Encodingの値HttpResponse.Status.SEE_OTHER
@Published @Deprecated public HttpCookie getCookie()
getCookieList()
を使用してください。null
public java.util.List<javax.servlet.http.Cookie> getCookieList()
@Published public java.util.List<HttpCookie> getHttpCookies()
HttpCookie
として取得する。
HttpCookie
は同じ属性を持つ複数のクッキーを保持する仕様であるため、
クッキーの属性が各々異なることを考慮し、リストとして返却する。HttpCookie
)のリスト@Published @Deprecated public HttpResponse setCookie(HttpCookie cookie)
addCookie(HttpCookie)
に置き換わりました。cookie
- クッキー情報オブジェクト@Published public HttpResponse addCookie(HttpCookie cookie)
cookie
- クッキー情報オブジェクト@Published public HttpResponse setContentPath(java.lang.String path)
setContentPath(ResourceLocator)
に委譲する。path
- コンテンツパス@Published public HttpResponse setContentPath(ResourceLocator resource)
ResourceLocator
オブジェクトがnull
でない場合は、
リソース名からContent-Typeを自動的に設定した後、コンテンツパスを設定する。ResourceLocator
オブジェクトがnull
の場合は、コンテンツパスのみ設定する。resource
- コンテンツパスsetContentPath(String)
@Published public ResourceLocator getContentPath()
@Published public java.lang.String getContentLength()
null
を返す。public HttpResponse cleanup()
@Published(tag="architect") public boolean isBodyEmpty()
true
を返す。true
@Published(tag="architect") public java.lang.String getBodyString()
@Published(tag="architect") public java.io.InputStream getBodyStream()
@Published(tag="architect") public HttpResponse setBodyStream(java.io.InputStream bodyStream)
bodyStream
- HTTPレスポンスボディの内容を保持するストリーム@Published public HttpResponse write(java.lang.CharSequence text) throws HttpErrorResponse
HttpResponseHandler
にレスポンスオブジェクトが戻された後である。
また、このオブジェクトにコンテンツパスが設定されている場合、
このライタに書き込まれた内容は単に無視される。text
- 書き込む文字列HttpErrorResponse
- バッファの上限を越えてデータが書き込まれた場合@Published public HttpResponse write(byte[] bytes) throws HttpErrorResponse
HttpResponseHandler
にレスポンスオブジェクトが戻された後である。
また、このオブジェクトにコンテンツパスが設定されている場合、
このライタに書き込まれた内容は単に無視される。bytes
- 書き込むバイト配列HttpErrorResponse
- バッファの上限を越えてデータが書き込まれた場合@Published public HttpResponse write(java.nio.ByteBuffer bytes) throws HttpErrorResponse
HttpResponseHandler
にレスポンスオブジェクトが戻された後である。
また、このオブジェクトにコンテンツパスが設定されている場合、
このライタに書き込まれた内容は単に無視される。bytes
- 書き込むバイト列を格納したバッファHttpErrorResponse
- バッファの上限を越えてデータが書き込まれた場合public java.lang.String toString()
toString
in class java.lang.Object