このマニュアルは進行中で、現在不完全です。
改善にご協力いただければ幸いです。ご協力をお願いいたします。 詳細は README をご覧ください。

11 HTTP クライアント

Ratpack はリモート HTTP 呼び出しを行う HttpClient を提供しています。Ratpack が提供する HttpClient は完全に非ブロッキングであり、Ratpack ライブラリの中心的な部分です。Ratpack サーバーと同様に、HttpClient も Netty を内部的に使用し、実際には Netty のベストプラクティスに従って同じ EventLoopGroup を共有しています。

1.11 基本 GET リクエスト

import ratpack.core.http.client.HttpClient;
import ratpack.test.embed.EmbeddedApp;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class Example {
  public static void main(String... args) throws Exception {
    try (EmbeddedApp remoteApp = EmbeddedApp.fromHandler(ctx -> ctx.render("Hello from remoteApp"))) {
      EmbeddedApp.fromHandler(ctx -> ctx
          .render(
            ctx
              .get(HttpClient.class)
              .get(remoteApp.getAddress())
              .map(response -> response.getBody().getText())
          )
      ).test(httpClient -> 
        assertEquals("Hello from remoteApp", httpClient.getText())
      );
    }
  }
}