4.6.2.3.3. Net ソケットメソッドを使用した HTTP クライアントトンネリング

HTTP トンネルは、HttpClientResponse.netSocket() メソッドを使用して作成できます。Eclipse Vert.x 4 では、このメソッドが更新されました。

要求の接続に net ソケットを取得するには、要求でソケットハンドラーを送信します。ハンドラーは、HTTP 応答ヘッダーの受信時に呼び出されます。ソケットはトンネリングの準備ができ、バッファーの送受信が可能です。

以下の例は、Eclipse Vert.x 3.x リリースで接続の net ソケットを取得する方法を示しています。

client.request(HttpMethod.CONNECT, uri, ar -> {
  if (ar.succeeded()) {
    HttpClientResponse response = ar.result();
    if (response.statusCode() == 200) {
      NetSocket so = response.netSocket();
   }
  }
}).end();

以下の例は、Eclipse Vert.x 4 で接続の net ソケットを取得する方法を示しています。

client.request(HttpMethod.CONNECT, uri, ar -> {
}).netSocket(ar -> {
  if (ar.succeeded()) {
   // Got a response with a 200 status code
   NetSocket so = ar.result();
   // Go for tunneling
  }
}).end();