@Path("5") @GET public void hello5(@Suspended final AsyncResponse asyncResponse, // Inject the Vertx instance @Context Vertx vertx){ io.vertx.reactivex.core.Vertx rxVertx = io.vertx.reactivex.core.Vertx.newInstance(vertx); System.err.println("Creating client"); HttpClientOptions options = new HttpClientOptions(); options.setSsl(true); options.setTrustAll(true); options.setVerifyHost(false); io.vertx.reactivex.core.http.HttpClient client = rxVertx.createHttpClient(options); // DOES NOT WORK: https://github.com/vert-x3/vertx-rx/issues/13 Observable<io.vertx.reactivex.core.http.HttpClientResponse> responseHandler = client.get(443, "www.google.com", "/robots.txt").toObservable(); responseHandler.map(resp -> { System.err.println("Got response"); return resp.toObservable(); }) .subscribe(body -> { System.err.println("Got body"); asyncResponse.resume(Response.ok(body.toString()).build()); }); System.err.println("Created client"); }
private Observable<HttpClientResponse> get(HttpClient client, RequestOptions requestOptions, MultiMap headers) { return Observable.unsafeCreate(subscriber -> { HttpClientRequest req = client.get(requestOptions); req.headers().addAll(headers); if (headers.get(HttpHeaderNames.HOST.toString()) != null) { req.setHost(headers.get(HttpHeaderNames.HOST.toString())); } Observable<HttpClientResponse> resp = req.toObservable(); resp.subscribe(subscriber); req.end(); }); }
private Observable<HttpClientResponse> get(HttpClient client, RequestOptions requestOptions, MultiMap headers) { return Observable.unsafeCreate(subscriber -> { HttpClientRequest req = client.get(requestOptions); req.headers().addAll(headers); if (headers.get(HttpHeaderNames.HOST.toString()) != null) { req.setHost(headers.get(HttpHeaderNames.HOST.toString())); } Observable<HttpClientResponse> resp = req.toObservable(); resp.subscribe(subscriber); req.end(); }); }