List of usage examples for io.vertx.core.http HttpClient getAbs
HttpClientRequest getAbs(String absoluteURI, Handler<AsyncResult<HttpClientResponse>> responseHandler);
From source file:org.folio.auth.login_module.impl.ModuleUserSource.java
@Override public Future<UserResult> getUser(String username) { if (okapiUrl == null || vertx == null || requestToken == null || tenant == null) { throw new RuntimeException( "You must call setOkapiUrl, setVertx, setRequestToken and setTenant before calling this method"); }//from w w w. j a va 2 s . c o m Future<UserResult> future = Future.future(); HttpClientOptions options = new HttpClientOptions(); options.setConnectTimeout(10); options.setIdleTimeout(10); HttpClient client = vertx.createHttpClient(options); JsonObject query = new JsonObject().put("username", username); String requestUrl = null; try { requestUrl = okapiUrl + "/users/?query=" + URLEncoder.encode(query.encode(), "UTF-8"); } catch (Exception e) { future.fail(e); return future; } logger.debug("Requesting userdata from URL at " + requestUrl); client.getAbs(requestUrl, res -> { if (res.statusCode() != 200) { future.fail("Got status code " + res.statusCode()); } else { res.bodyHandler(buf -> { logger.debug("Got content from server: " + buf.toString()); JsonObject result = buf.toJsonObject(); if (result.getInteger("total_records") > 1) { future.fail("Not unique username"); } else if (result.getInteger("total_records") == 0) { UserResult userResult = new UserResult(username, false); future.complete(userResult); } else { UserResult userResult = new UserResult(username, true, result.getJsonArray("users").getJsonObject(0).getBoolean("active")); future.complete(userResult); } }); } }).putHeader("X-Okapi-Tenant", tenant).putHeader("Authorization", "Bearer " + requestToken) .putHeader("Content-type", "application/json").putHeader("Accept", "application/json").end(); return future; }