use of io.vertx.rxjava.core.http.HttpClient in project vertx-examples by vert-x3.
the class Client method start.
@Override
public void start() throws Exception {
HttpClient client = vertx.createHttpClient();
HttpClientRequest req = client.request(HttpMethod.GET, 8080, "localhost", "/");
req.toObservable().flatMap(resp -> {
if (resp.statusCode() != 200) {
throw new RuntimeException("Wrong status code " + resp.statusCode());
}
return Observable.just(Buffer.buffer()).mergeWith(resp.toObservable());
}).reduce(Buffer::appendBuffer).map(buffer -> buffer.toString("UTF-8")).subscribe(data -> System.out.println("Server content " + data));
// End request
req.end();
}
use of io.vertx.rxjava.core.http.HttpClient in project vertx-examples by vert-x3.
the class Client method start.
@Override
public void start() throws Exception {
HttpClient client = vertx.createHttpClient();
HttpClientRequest req = client.request(HttpMethod.GET, 8080, "localhost", "/");
req.toObservable().flatMap(HttpClientResponse::toObservable).lift(io.vertx.rxjava.core.RxHelper.unmarshaller(Data.class)).subscribe(data -> {
System.out.println("Got response " + data.message);
});
// End request
req.end();
}
use of io.vertx.rxjava.core.http.HttpClient in project vertx-openshift-it by cescoffier.
the class GatewayVerticle method start.
@Override
public void start() throws Exception {
dnsClient = vertx.createHttpClient(new HttpClientOptions().setDefaultHost(ENDPOINT_NAME).setDefaultPort(8080).setKeepAlive(false));
dnsWeb = WebClient.create(vertx, new WebClientOptions().setDefaultHost(ENDPOINT_NAME).setDefaultPort(8080).setKeepAlive(false));
dnsDatabase = JDBCClient.createShared(vertx, new JsonObject().put("url", "jdbc:postgresql://my-database:5432/my_data").put("driver_class", "org.postgresql.Driver").put("user", "luke").put("password", "secret"));
Router router = Router.router(vertx);
router.get("/health").handler(rc -> rc.response().end("OK"));
router.get("/services/http").handler(this::invokeHttpService);
router.get("/services/web").handler(this::invokeWebService);
router.get("/services/db").handler(this::checkDb);
router.get("/dns/http").handler(this::invokeHttpServiceWithDns);
router.get("/dns/web").handler(this::invokeWebServiceWithDns);
router.get("/dns/db").handler(this::checkDbWithDns);
router.get("/ref/http").handler(this::invokeHttpServiceWithRef);
router.get("/ref/web").handler(this::invokeWebServiceWithRef);
router.put("/webclient").handler(this::webclient);
ServiceDiscovery.create(vertx, discovery -> {
this.discovery = discovery;
Single<WebClient> svc1 = HttpEndpoint.rxGetWebClient(discovery, svc -> svc.getName().equals(ENDPOINT_NAME), new JsonObject().put("keepAlive", false));
Single<HttpClient> svc2 = HttpEndpoint.rxGetClient(discovery, svc -> svc.getName().equals(ENDPOINT_NAME), new JsonObject().put("keepAlive", false));
Single<JDBCClient> svc3 = JDBCDataSource.rxGetJDBCClient(discovery, svc -> svc.getName().equals("my-database"), new JsonObject().put("url", "jdbc:postgresql://my-database:5432/my_data").put("driver_class", "org.postgresql.Driver").put("user", "luke").put("password", "secret"));
Single.zip(svc1, svc2, svc3, (wc, hc, db) -> {
this.web = wc;
this.client = hc;
this.database = db;
return vertx.createHttpServer().requestHandler(router::accept).listen(8080);
}).subscribe();
});
}
use of io.vertx.rxjava.core.http.HttpClient in project vertx-examples by vert-x3.
the class Client method start.
@Override
public void start() throws Exception {
HttpClient client = vertx.createHttpClient();
HttpClientRequest req = client.request(HttpMethod.GET, 8080, "localhost", "/");
req.toObservable().flatMap(resp -> {
if (resp.statusCode() != 200) {
throw new RuntimeException("Wrong status code " + resp.statusCode());
}
return resp.toObservable();
}).subscribe(data -> System.out.println("Server content " + data.toString("UTF-8")));
// End request
req.end();
}
use of io.vertx.rxjava.core.http.HttpClient in project vertx-examples by vert-x3.
the class Client method start.
@Override
public void start() throws Exception {
HttpClient client = vertx.createHttpClient();
// Create two requests
HttpClientRequest req1 = client.request(HttpMethod.GET, 8080, "localhost", "/");
HttpClientRequest req2 = client.request(HttpMethod.GET, 8080, "localhost", "/");
// Turn the requests responses into Observable<JsonObject>
Observable<JsonObject> obs1 = req1.toObservable().flatMap(HttpClientResponse::toObservable).map(buf -> new JsonObject(buf.toString("UTF-8")));
Observable<JsonObject> obs2 = req2.toObservable().flatMap(HttpClientResponse::toObservable).map(buf -> new JsonObject(buf.toString("UTF-8")));
// Combine the responses with the zip into a single response
obs1.zipWith(obs2, (b1, b2) -> new JsonObject().put("req1", b1).put("req2", b2)).subscribe(json -> {
System.out.println("Got combined result " + json);
}, err -> {
err.printStackTrace();
});
req1.end();
req2.end();
}
Aggregations