반응형
공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
지난 포스팅에서 Vert.x 라는 툴킷에 대해서 공부했었는데요.
이번 포스팅에서는 Vert.x 를 사용해서 아주 간단하게
HttpServer 와 HttpClient 간의 통신하는 코드를 작성해봤씁니다.
pom.xml 에 의존성 추가
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <!-- https://mvnrepository.com/artifact/io.vertx/vertx-core --> <dependency> <groupId>io.vertx</groupId> <artifactId>vertx-core</artifactId> <version>3.5.2</version> </dependency> <!-- https://mvnrepository.com/artifact/io.vertx/vertx-unit --> <dependency> <groupId>io.vertx</groupId> <artifactId>vertx-unit</artifactId> <version>3.5.2</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/io.vertx/vertx-web --> <dependency> <groupId>io.vertx</groupId> <artifactId>vertx-web</artifactId> <version>3.5.2</version> </dependency> <!-- https://mvnrepository.com/artifact/io.vertx/vertx-web --> <dependency> <groupId>io.vertx</groupId> <artifactId>vertx-web-client</artifactId> <version>3.5.2</version> </dependency> | cs |
HttpServers.java ( 지난 포스팅과 같은 코드를 사용했습니다. )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | import io.vertx.core.AbstractVerticle; import io.vertx.core.MultiMap; import io.vertx.core.Vertx; import io.vertx.core.http.HttpServerResponse; import io.vertx.core.json.JsonObject; import io.vertx.ext.web.Router; import io.vertx.ext.web.handler.BodyHandler; public class HttpServers extends AbstractVerticle { @Override public void start() { Router router = Router.router(Vertx.vertx()); router.post().handler(BodyHandler.create()); router.route().handler(rc -> { String path = rc.request().path(); MultiMap map = rc.request().params(); switch (path) { case "/membership": String id = map.get("id2"); System.out.println(id); break; default: System.out.println("ggggg"); break; } HttpServerResponse res = rc.response(); String id = map.get("id"); JsonObject json = new JsonObject().put("code", "000").put("id", id); res.putHeader("content-type", "text/plain").end(json.toString()); }); Vertx.vertx().createHttpServer().requestHandler(router::accept).listen(9292); } public static void main(String[] args) throws Exception { HttpServers server = new HttpServers(); server.start(); } } | cs |
HttpClients.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import io.vertx.core.AbstractVerticle; import io.vertx.core.Handler; import io.vertx.core.Vertx; import io.vertx.core.http.HttpClient; import io.vertx.core.http.HttpClientResponse; public class HttpClients extends AbstractVerticle { @Override public void start() throws Exception { HttpClient httpClient = Vertx.vertx().createHttpClient(); httpClient.getNow(9292, "localhost", "/", new Handler<HttpClientResponse>() { @Override public void handle(HttpClientResponse httpClientResponse) { System.out.println("Response received"); } }); } public static void main(String[] args) { try { new HttpClients().start(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } | cs |
HttpServers.java 를 먼저 실행시켜 줍니다.
그리고 HttpClients.java 를 실행시키면 먼저 클라이언트가 요청을 보내고,
그에 대한 응답을 서버측에서 클라이언트 측으로 보냅니다.
실제로 해보시면 금방 이해가 되실 거에요.
이상입니다.
감사합니다.
반응형
'자바' 카테고리의 다른 글
[Java] 2차원 배열, 이차원 배열 행 섞기, 열 섞기 (0) | 2018.10.16 |
---|---|
리턴 값이 3개일 때 Integer.compare(int x, int y) 사용히기! ( Double.compare(), Float.compare() (0) | 2018.08.20 |
[Java ] Vert.x(Vertx) 로 HttpServer 구축하기! (0) | 2018.07.03 |
자바 SecureRandom 클래스를 이용한 인증토큰만들기! (1) | 2018.04.16 |
자바 배열에서 [] 와 ... 의 차이?! (0) | 2018.04.03 |