4.6.2.2.3. 応答の処理
HttpClientResponse
インターフェイスが更新され、以下の方法で改善されました。
body()
メソッドbody()
メソッドは非同期バッファーを返します。bodyHandler()
の代わりにbody()
メソッドを使用します。以下の例は、
bodyHandler()
メソッドを使用して要求ボディーを取得する方法を示しています。response.bodyHandler(body -> { // Process the request body }); response.exceptionHandler(err -> { // Could not get the request body });
以下の例は、
body()
メソッドを使用して要求ボディーを取得する方法を示しています。response.body(ar -> { if (ar.succeeded()) { // Process the request body } else { // Could not get the request body } });
end()
メソッドend()
メソッドは、応答が正常または失敗した場合に future の結果を返します。このメソッドは応答ボディーを削除します。endHandler()
メソッドの代わりにこのメソッドを使用してください。以下の例は、
endHandler()
メソッドを使用する方法を示しています。response.endHandler(v -> { // Response ended }); response.exceptionHandler(err -> { // Response failed, something went wrong });
以下の例は、
end()
メソッドの使用方法を示しています。response.end(ar -> { if (ar.succeeded()) { // Response ended } else { // Response failed, something went wrong } });
onSucces()
、compose()
、bodyHandler()
などのメソッドで応答を処理することもできます。以下の例は、onSuccess()
メソッドを使用して応答を処理する方法を示しています。
以下の例は、Eclipse Vert.x 3.x リリースにおいて、result()
メソッドで HTTP クライアントを使用する方法を示しています。
HttpClient client = vertx.createHttpClient(options); client.request(HttpMethod.GET, 8443, "localhost", "/") .onSuccess(request -> { request.onSuccess(resp -> { //Code to handle HTTP response }); });
以下の例は、Eclipse Vert.x 4 の result()
メソッドで HTTP クライアントを使用する方法を示しています。
HttpClient client = vertx.createHttpClient(options); client.request(HttpMethod.GET, 8443, "localhost", "/") .onSuccess(request -> { request.response().onSuccess(resp -> { //Code to handle HTTP response }); });