本手册仍在编写中,目前尚未完善。
如果您愿意帮助改进它,我们希望您能这样做,请参阅 README

11 Http 客户端

Ratpack 提供了自己的 HttpClient,可用于进行远程 HTTP 调用。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())
      );
    }
  }
}