public abstract class Response extends ObjectSE implements AutoCloseableSE
アプリケーションクラスは、このクラスを直接拡張しないでください。Response
クラスは、API 実装プロバイダーによる拡張用に予約されています。アプリケーションは、静的メソッドの 1 つを使用して、ResponseBuilder を使用する Response
インスタンスを作成する必要があります。
いくつかのメソッドには型 URI のパラメーターがあります。UriBuilder
は、URI.create(java.lang.String)
SE のような値を作成するための便利なメソッドを提供します。
Response.ResponseBuilder
修飾子と型 | クラスと説明 |
---|---|
static class | Response.ResponseBuilder エンティティの代わりに、またはエンティティに加えてメタデータを含む Response インスタンスを構築するために使用されるクラス。 |
static class | Response.Status HTTP によって定義される一般的に使用されるステータスコード。完全なリストについては、HTTP/1.1 ドキュメントを参照してください。 |
static interface | Response.StatusType レスポンスで使用されるステータスの基本インターフェース。 |
修飾子 | コンストラクターと説明 |
---|---|
protected | Response() protected コンストラクター。静的メソッドの 1 つを使用して Response.ResponseBuilder インスタンスを取得し、そこから Response を取得します。 |
修飾子と型 | メソッドと説明 |
---|---|
static Response.ResponseBuilder | accepted() ACCEPTED ステータスで新しい ResponseBuilder を作成します。 |
static Response.ResponseBuilder | accepted(ObjectSE entity) 表現を含む ACCEPTED ステータスで新しい ResponseBuilder を作成します。 |
abstract boolean | bufferEntity() メッセージエンティティデータをバッファリングします。 |
abstract void | close() 基盤となるメッセージエンティティの入力ストリームを閉じて(利用可能で開いている場合)、レスポンスに関連付けられているその他のリソースを解放します(例: |
static Response.ResponseBuilder | created(URISE location) 作成されたリソースの新しい ResponseBuilder を作成し、提供された値を使用してロケーションヘッダーを設定します。 |
static Response.ResponseBuilder | fromResponse(Response response) 既存のレスポンスの浅いコピーを実行して、新しい ResponseBuilder を作成します。 |
abstract SetSE<StringSE> | getAllowedMethods() Allow HTTP ヘッダーから許可された HTTP メソッドを取得します。 |
abstract MapSE<StringSE, NewCookie> | getCookies() レスポンスメッセージに設定された新しい Cookie を取得します。 |
abstract DateSE | getDate() メッセージの日付を取得します。 |
abstract ObjectSE | getEntity() メッセージエンティティの Java インスタンスを取得します。 |
abstract EntityTag | getEntityTag() エンティティタグを取得します。 |
MultivaluedMap<StringSE, ObjectSE> | getHeaders() レスポンスヘッダーとそのオブジェクト値のビューを取得します。 |
abstract StringSE | getHeaderString(StringSE name) メッセージヘッダーを単一の文字列値として取得します。 |
abstract LocaleSE | getLanguage() メッセージエンティティの言語を取得します。 |
abstract DateSE | getLastModified() 最終更新日を取得します。 |
abstract int | getLength() Content-Length 値を取得します。 |
abstract Link | getLink(StringSE relation) 関係のリンクを取得します。 |
abstract Link.Builder | getLinkBuilder(StringSE relation) リレーションの Link.Builder を返す簡易メソッド。 |
abstract SetSE<Link> | getLinks() メッセージに添付されたリンクをヘッダーとして取得します。 |
abstract URISE | getLocation() 場所を取得します。 |
abstract MediaType | getMediaType() メッセージエンティティのメディア型を取得します。 |
abstract MultivaluedMap<StringSE, ObjectSE> | getMetadata() getHeaders() を参照してください。 |
abstract int | getStatus() レスポンスに関連付けられたステータスコードを取得します。 |
abstract Response.StatusType | getStatusInfo() レスポンスに関連する完全なステータス情報を取得します。 |
abstract MultivaluedMap<StringSE, StringSE> | getStringHeaders() レスポンスヘッダーとその文字列値のビューを取得します。 |
abstract boolean | hasEntity() レスポンスで使用可能なエンティティがあるかどうかを確認します。 |
abstract boolean | hasLink(StringSE relation) リレーションのリンクが存在するかどうかを確認します。 |
static Response.ResponseBuilder | noContent() 空のレスポンスに対して新しい ResponseBuilder を作成します。 |
static Response.ResponseBuilder | notAcceptable(ListSE<Variant> variants) 受け入れられないレスポンスのために新しい ResponseBuilder を作成します。 |
static Response.ResponseBuilder | notModified() 変更されていない状態で新しい ResponseBuilder を作成します。 |
static Response.ResponseBuilder | notModified(EntityTag tag) 変更されていない状態で新しい ResponseBuilder を作成します。 |
static Response.ResponseBuilder | notModified(StringSE tag) 変更されていないステータスと強力なエンティティタグで新しい ResponseBuilder を作成します。 |
static Response.ResponseBuilder | ok() OK ステータスの新しい ResponseBuilder を作成します。 |
static Response.ResponseBuilder | ok(ObjectSE entity) 表現を含む新しい ResponseBuilder を作成します。 |
static Response.ResponseBuilder | ok(ObjectSE entity, MediaType type) 表現を含む新しい ResponseBuilder を作成します。 |
static Response.ResponseBuilder | ok(ObjectSE entity, StringSE type) 表現を含む新しい ResponseBuilder を作成します。 |
static Response.ResponseBuilder | ok(ObjectSE entity, Variant variant) 表現を含む新しい ResponseBuilder を作成します。 |
abstract <T> T | readEntity(ClassSE<T> entityType) リクエストされた型へのメッセージエンティティストリームのマッピングをサポートする MessageBodyReader を使用して、指定された Java 型のインスタンスとしてメッセージエンティティ入力ストリームを読み取ります。 |
abstract <T> T | readEntity(ClassSE<T> entityType, AnnotationSE[] annotations) リクエストされた型へのメッセージエンティティストリームのマッピングをサポートする MessageBodyReader を使用して、指定された Java 型のインスタンスとしてメッセージエンティティ入力ストリームを読み取ります。 |
abstract <T> T | readEntity(GenericType<T> entityType) リクエストされた型へのメッセージエンティティストリームのマッピングをサポートする MessageBodyReader を使用して、指定された Java 型のインスタンスとしてメッセージエンティティ入力ストリームを読み取ります。 |
abstract <T> T | readEntity(GenericType<T> entityType, AnnotationSE[] annotations) リクエストされた型へのメッセージエンティティストリームのマッピングをサポートする MessageBodyReader を使用して、指定された Java 型のインスタンスとしてメッセージエンティティ入力ストリームを読み取ります。 |
static Response.ResponseBuilder | seeOther(URISE location) リダイレクト用に新しい ResponseBuilder を作成します。 |
static Response.ResponseBuilder | serverError() サーバーエラーステータスで新しい ResponseBuilder を作成します。 |
static Response.ResponseBuilder | status(int status) 指定されたステータスで新しい ResponseBuilder を作成します。 |
static Response.ResponseBuilder | status(int status, StringSE reasonPhrase) 指定されたステータスと理由フレーズを使用して、新しい ResponseBuilder を作成します。 |
static Response.ResponseBuilder | status(Response.Status status) 指定されたステータスで新しい ResponseBuilder を作成します。 |
static Response.ResponseBuilder | status(Response.StatusType status) 指定されたステータスで新しい ResponseBuilder を作成します。 |
static Response.ResponseBuilder | temporaryRedirect(URISE location) 一時的なリダイレクト用に新しい ResponseBuilder を作成します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
protected Response()
Response.ResponseBuilder
インスタンスを取得し、そこから Response を取得します。public abstract int getStatus()
public abstract Response.StatusType getStatusInfo()
null
になることはありません。public abstract ObjectSE getEntity()
null
を返します。 エンティティが未使用の input stream
SE で表されている場合、メソッドは入力ストリームを返します。
hasEntity()
が false
を返す場合)は null
IllegalStateExceptionSE
- エンティティが以前に input stream
SE として完全に消費されていた場合、またはレスポンスが closed
であった場合。public abstract <T> T readEntity(ClassSE<T> entityType)
MessageBodyReader
を使用して、指定された Java 型のインスタンスとしてメッセージエンティティ入力ストリームを読み取ります。 メソッドは、メッセージの内容がリクエストされた型のエンティティにマッピングできない場合は ProcessingException
を、エンティティが入力ストリームでバックアップされていない場合や、エンティティデータを消費する前に buffering
を使用せずに、元のエンティティ入力ストリームがすでに消費されている場合は IllegalStateException
SE をスローします。
このメソッドから返されたメッセージインスタンスは、getEntity()
を介した後続の取得のためにキャッシュされます。提供されたエンティティ型が input stream
SE でない限り、このメソッドは、開いている場合、未使用の元のレスポンスエンティティデータストリームを自動的に closes
します。エンティティデータがバッファリングされている場合、バッファはバッファリングされたデータを消費する前にリセットされ、このレスポンスで readEntity(...)
メソッドの後続の呼び出しを有効にします。
T
- エンティティインスタンスの Java 型。entityType
- エンティティの型。NoContentException
をラップする ProcessingException
がスローされます。ProcessingException
- メッセージのコンテンツをリクエストされた型のエンティティにマップできない場合。IllegalStateExceptionSE
- エンティティが入力ストリームによってサポートされていない場合、レスポンスはすでに closed
であるか、エンティティ入力ストリームがすでに完全に消費されており、以前に消費されてバッファリングされていない場合。MessageBodyReader
public abstract <T> T readEntity(GenericType<T> entityType)
MessageBodyReader
を使用して、指定された Java 型のインスタンスとしてメッセージエンティティ入力ストリームを読み取ります。 メソッドは、メッセージの内容がリクエストされた型のエンティティにマッピングできない場合は ProcessingException
を、エンティティが入力ストリームでバックアップされていない場合や、エンティティデータを消費する前に buffering
を使用せずに、元のエンティティ入力ストリームがすでに消費されている場合は IllegalStateException
SE をスローします。
このメソッドから返されたメッセージインスタンスは、getEntity()
を介した後続の取得のためにキャッシュされます。提供されたエンティティ型が input stream
SE でない限り、このメソッドは、開いている場合、未使用の元のレスポンスエンティティデータストリームを自動的に closes
します。エンティティデータがバッファリングされている場合、バッファはバッファリングされたデータを消費する前にリセットされ、このレスポンスで readEntity(...)
メソッドの後続の呼び出しを有効にします。
T
- エンティティインスタンスの Java 型。entityType
- エンティティの型。ジェネリクスかもしれません。NoContentException
をラップする ProcessingException
がスローされます。ProcessingException
- メッセージのコンテンツをリクエストされた型のエンティティにマップできない場合。IllegalStateExceptionSE
- エンティティが入力ストリームによってサポートされていない場合、レスポンスはすでに closed
であるか、エンティティ入力ストリームがすでに完全に消費されており、以前に消費されてバッファリングされていない場合。MessageBodyReader
public abstract <T> T readEntity(ClassSE<T> entityType, AnnotationSE[] annotations)
MessageBodyReader
を使用して、指定された Java 型のインスタンスとしてメッセージエンティティ入力ストリームを読み取ります。 メソッドは、メッセージの内容がリクエストされた型のエンティティにマッピングできない場合は ProcessingException
を、エンティティが入力ストリームでバックアップされていない場合や、エンティティデータを消費する前に buffering
を使用せずに、元のエンティティ入力ストリームがすでに消費されている場合は IllegalStateException
SE をスローします。
このメソッドから返されたメッセージインスタンスは、getEntity()
を介した後続の取得のためにキャッシュされます。提供されたエンティティ型が input stream
SE でない限り、このメソッドは、開いている場合、未使用の元のレスポンスエンティティデータストリームを自動的に closes
します。エンティティデータがバッファリングされている場合、バッファはバッファリングされたデータを消費する前にリセットされ、このレスポンスで readEntity(...)
メソッドの後続の呼び出しを有効にします。
T
- エンティティインスタンスの Java 型。entityType
- エンティティの型。annotations
- MessageBodyReader
に渡されるアノテーション。NoContentException
をラップする ProcessingException
がスローされます。ProcessingException
- メッセージのコンテンツをリクエストされた型のエンティティにマップできない場合。IllegalStateExceptionSE
- エンティティが入力ストリームによってサポートされていない場合、レスポンスはすでに closed
であるか、エンティティ入力ストリームがすでに完全に消費されており、以前に消費されてバッファリングされていない場合。MessageBodyReader
public abstract <T> T readEntity(GenericType<T> entityType, AnnotationSE[] annotations)
MessageBodyReader
を使用して、指定された Java 型のインスタンスとしてメッセージエンティティ入力ストリームを読み取ります。 メソッドは、メッセージの内容がリクエストされた型のエンティティにマッピングできない場合は ProcessingException
を、エンティティが入力ストリームでバックアップされていない場合や、エンティティデータを消費する前に buffering
を使用せずに、元のエンティティ入力ストリームがすでに消費されている場合は IllegalStateException
SE をスローします。
このメソッドから返されたメッセージインスタンスは、getEntity()
を介した後続の取得のためにキャッシュされます。提供されたエンティティ型が input stream
SE でない限り、このメソッドは、開いている場合、未使用の元のレスポンスエンティティデータストリームを自動的に closes
します。エンティティデータがバッファリングされている場合、バッファはバッファリングされたデータを消費する前にリセットされ、このレスポンスで readEntity(...)
メソッドの後続の呼び出しを有効にします。
T
- エンティティインスタンスの Java 型。entityType
- エンティティの型。ジェネリクスかもしれません。annotations
- MessageBodyReader
に渡されるアノテーション。NoContentException
をラップする ProcessingException
がスローされます。ProcessingException
- メッセージのコンテンツをリクエストされた型のエンティティにマップできない場合。IllegalStateExceptionSE
- エンティティが入力ストリームによってサポートされていない場合、レスポンスはすでに closed
であるか、エンティティ入力ストリームがすでに完全に消費されており、以前に消費されてバッファリングされていない場合。MessageBodyReader
public abstract boolean hasEntity()
true
を返し、それ以外の場合は false
を返します。 メッセージで "Content-Length"
および "Content-Type"
ヘッダーが指定されている場合、このメソッドは長さがゼロのレスポンスメッセージに対しても true
を返す場合があることに注意してください。このような場合、readEntity(...)
メソッドの 1 つを使用してエンティティを読み取ろうとすると、指定された Java 型のゼロ長のエンティティを表す対応するインスタンスが返されるか、Java 型でそのようなインスタンスが利用できない場合に ProcessingException
が生成されます。
true
、それ以外の場合は false
。IllegalStateExceptionSE
- レスポンスが closed
の場合。public abstract boolean bufferEntity()
メッセージエンティティが未使用のエンティティ入力ストリームによってサポートされている場合、元のエンティティ入力ストリームのすべてのバイトが読み取られ、ローカルバッファに格納されます。元のエンティティ入力ストリームが消費され、操作の一部として自動的に閉じられ、メソッドは true
を返します。
レスポンスエンティティインスタンスが消費されていない入力ストリームによってサポートされていない場合、bufferEntity
メソッドの呼び出しは無視され、メソッドは false
を返します。
この操作はべき等です。つまり、同じ効果で複数回呼び出すことができます。つまり、すでにバッファリングされている(したがって閉じられている)メッセージインスタンスで bufferEntity()
メソッドを呼び出すことは正当であり、それ以上の効果はありません。また、bufferEntity()
メソッドによって返される結果は、同じ Response
インスタンスでのメソッドのすべての呼び出しで一貫しています。
メッセージエンティティデータをバッファリングすると、レスポンスインスタンスで readEntity(...)
メソッドを複数回呼び出すことができます。ただし、レスポンスインスタンス自体が closed
になると、実装はバッファリングされたメッセージエンティティデータも解放することが期待されます。そのようなクローズされたレスポンスでメッセージエンティティストリームを読み取ろうとすると、IllegalStateException
SE がスローされます。
true
は、メッセージエンティティの入力ストリームが利用可能であり、正常にバッファリングされた場合、エンティティストリームが利用できなかった場合に false
を返します。ProcessingException
- エンティティ入力ストリームのバッファリング中にエラーが発生した場合。IllegalStateExceptionSE
- レスポンスが closed
の場合。public abstract void close()
buffered message entity data
など)を解放します。 この操作はべき等です。つまり、同じ効果で複数回呼び出すことができます。つまり、すでに閉じられたメッセージインスタンスで close()
メソッドを呼び出すことは正当であり、それ以上の効果はありません。
close()
メソッドは、インスタンスに関連付けられたリソースが適切にクリーンアップされ、潜在的なメモリリークを防ぐために、未使用のエンティティ入力ストリームを含むすべてのインスタンスで呼び出す必要があります。これは、アプリケーションレイヤーコードがレスポンスヘッダーのみを処理し、レスポンスエンティティを無視するクライアント側のシナリオでは一般的です。
閉じたレスポンスでメッセージエンティティを操作(読み取り、取得、バッファリング)しようとすると、IllegalStateException
SE がスローされます。
AutoCloseableSE
の closeSE
ProcessingException
- レスポンスを閉じるときにエラーが発生した場合。public abstract MediaType getMediaType()
null
public abstract LocaleSE getLanguage()
public abstract int getLength()
-1
を返します。public abstract SetSE<StringSE> getAllowedMethods()
public abstract MapSE<StringSE,NewCookie> getCookies()
public abstract EntityTag getEntityTag()
null
が存在しません。public abstract DateSE getDate()
null
が存在しません。public abstract DateSE getLastModified()
null
。public abstract URISE getLocation()
null
。public abstract SetSE<Link> getLinks()
Set
SE を返すことがあります。null
を返しません。public abstract boolean hasLink(StringSE relation)
relation
- リンク関係。message headers
に存在する場合は true
、それ以外の場合は false
。public abstract Link getLink(StringSE relation)
relation
- リンク関係。null
。public abstract Link.Builder getLinkBuilder(StringSE relation)
Link.Builder
を返す簡易メソッド。詳細については、getLink(java.lang.String)
を参照してください。relation
- リンク関係。null
が存在しません。public abstract MultivaluedMap<StringSE,ObjectSE> getMetadata()
getHeaders()
を参照してください。このメソッドは推奨されていません。代わりに、getHeaders()
メソッドを使用するようにコードを切り替えることをお勧めします。このメソッドは、API の将来のリリースで @Deprecated
SE としてアノテーションが付けられる可能性があります。public MultivaluedMap<StringSE,ObjectSE> getHeaders()
サーバー側では、メッセージが送信されるときに、文字列以外の値は、値のクラスに RuntimeDelegate.createHeaderDelegate(java.lang.Class)
を介して使用できる場合は RuntimeDelegate.HeaderDelegate
を使用して直列化され、ヘッダーデリゲートが使用できない場合は値 toString
メソッドを使用して直列化されます。
クライアント側では、返されるマップは getStringHeaders()
によって返されるものと同じです。
getStringHeaders()
, getHeaderString(java.lang.String)
public abstract MultivaluedMap<StringSE,StringSE> getStringHeaders()
getHeaders()
, getHeaderString(java.lang.String)
public abstract StringSE getHeaderString(StringSE name)
RuntimeDelegate.createHeaderDelegate(java.lang.Class)
を介して使用できる場合は RuntimeDelegate.HeaderDelegate
を使用して、またはヘッダーデリゲートが使用できない場合はその toString
メソッドを使用して文字列に変換されます。name
- メッセージヘッダー。null
が返されます。メッセージヘッダーは存在するが値がない場合は、空の文字列が返されます。メッセージヘッダーが複数存在する場合、の値は結合され、"," 文字で区切られます。getHeaders()
, getStringHeaders()
public static Response.ResponseBuilder fromResponse(Response response)
返されるビルダーには独自の response headers
がありますが、ヘッダー値は元の Response
インスタンスと共有されます。元のレスポンスエンティティインスタンスの参照は、新しいレスポンスビルダーで設定されます。
エンティティが消費されていない入力ストリームによってサポートされている場合は、ストリームへの参照がコピーされることに注意してください。このような場合、このメソッドに渡す前に、元のレスポンスインスタンスのエンティティストリームを buffer
にしてください。
response
- ステータスコード、エンティティ、response headers
のコピー元のレスポンス。public static Response.ResponseBuilder status(Response.StatusType status)
status
- レスポンスステータス。IllegalArgumentExceptionSE
- ステータスが null
の場合。public static Response.ResponseBuilder status(Response.Status status)
status
- レスポンスステータス。IllegalArgumentExceptionSE
- ステータスが null
の場合。public static Response.ResponseBuilder status(int status)
status
- レスポンスステータス。IllegalArgumentExceptionSE
- ステータスが 100
未満または 599
より大きい場合。public static Response.ResponseBuilder status(int status, StringSE reasonPhrase)
status
- レスポンスステータス。reasonPhrase
- 理由句。IllegalArgumentExceptionSE
- ステータスが 100
未満または 599
より大きい場合。public static Response.ResponseBuilder ok()
public static Response.ResponseBuilder ok(ObjectSE entity)
GenericEntity
でラップするのは呼び出し側の責任です。entity
- 表現エンティティデータ。public static Response.ResponseBuilder ok(ObjectSE entity, MediaType type)
GenericEntity
でラップするのは呼び出し側の責任です。entity
- 表現エンティティデータ。type
- エンティティのメディア型。public static Response.ResponseBuilder ok(ObjectSE entity, StringSE type)
GenericEntity
でラップするのは呼び出し側の責任です。entity
- 表現エンティティデータ。type
- エンティティのメディア型。public static Response.ResponseBuilder ok(ObjectSE entity, Variant variant)
GenericEntity
でラップするのは呼び出し側の責任です。entity
- 表現エンティティデータ。variant
- 表現メタデータ。public static Response.ResponseBuilder serverError()
public static Response.ResponseBuilder created(URISE location)
location
- 新しいリソースの URI。相対 URI が指定されている場合は、リクエスト URI を基準にして解決することで絶対 URI に変換されます(UriInfo.getRequestUri()
を参照)。IllegalArgumentExceptionSE
- 場所が null
の場合。public static Response.ResponseBuilder accepted()
public static Response.ResponseBuilder accepted(ObjectSE entity)
GenericEntity
でラップするのは呼び出し側の責任です。entity
- 表現エンティティデータ。public static Response.ResponseBuilder noContent()
public static Response.ResponseBuilder notModified()
public static Response.ResponseBuilder notModified(EntityTag tag)
tag
- 変更されていないエンティティのタグ。IllegalArgumentExceptionSE
- タグが null
の場合。public static Response.ResponseBuilder notModified(StringSE tag)
notModified(new EntityTag(value))
のショートカットです。tag
- 強力なエンティティタグの文字列コンテンツ。ランタイムは、ヘッダーの作成時に指定された値を引用します。IllegalArgumentExceptionSE
- タグが null
の場合。public static Response.ResponseBuilder seeOther(URISE location)
location
- リダイレクト URI。相対 URI が指定されている場合は、アプリケーションのベース URI を基準にして解決することにより、絶対 URI に変換されます(UriInfo.getBaseUri()
を参照)。IllegalArgumentExceptionSE
- 場所が null
の場合。public static Response.ResponseBuilder temporaryRedirect(URISE location)
location
- リダイレクト URI。相対 URI が指定されている場合は、アプリケーションのベース URI を基準にして解決することにより、絶対 URI に変換されます(UriInfo.getBaseUri()
を参照)。IllegalArgumentExceptionSE
- 場所が null
の場合。public static Response.ResponseBuilder notAcceptable(ListSE<Variant> variants)
variants
- 利用可能なバリアントのリスト。null 値は空のリストと同等です。Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.