为什么 HttpClient 类型的 getnow() 方法未定义?

问题描述

@Test
  public void serverIsstarted(TestContext context) {
      final Async async = context.async(); // <-- create the Async instance

      vertx.createHttpClient().getNow(8081,"localhost","/inexistent",response -> {
          context.assertEquals(200,response.statusCode());

          async.complete();  // <-- signal this test can Now terminate
      });
  }
 //   });
  
}

解决方法

我假设您是从 Vert.x 3 升级到 Vert.x 4?

在 Vert.x 4 中,HttpClient API 已经过重新设计。你应该这样做:

client.request(HttpMethod.GET,"/inexistent",ar1 -> {
  if (ar1.succeeded()) {
    HttpClientRequest request = ar1.result();
    request.send(ar2 -> {
      if (ar2.succeeded()) {
        HttpClientResponse response = ar2.result();
        context.assertEquals(200,response.statusCode());
        async.complete();  // <-- signal this test can now terminate
      }
    });
  }
});