Example usage for io.vertx.core.http HttpClient get

List of usage examples for io.vertx.core.http HttpClient get

Introduction

In this page you can find the example usage for io.vertx.core.http HttpClient get.

Prototype

HttpClientRequest get(String requestURI);

Source Link

Document

Create an HTTP GET request to send to the server at the default host and port.

Usage

From source file:io.gravitee.resource.oauth2.am.OAuth2AMResource.java

License:Apache License

@Override
public void userInfo(String accessToken, Handler<UserInfoResponse> responseHandler) {
    HttpClient httpClient = httpClients.computeIfAbsent(Vertx.currentContext(),
            context -> vertx.createHttpClient(httpClientOptions));

    logger.debug("Get userinfo from {}", userInfoEndpointURI);

    HttpClientRequest request = httpClient.get(userInfoEndpointURI);

    request.headers().add(HttpHeaders.AUTHORIZATION, AUTHORIZATION_HEADER_BEARER_SCHEME + accessToken);
    request.headers().add(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON);

    request.handler(response -> response.bodyHandler(buffer -> {
        logger.debug("Userinfo endpoint returns a response with a {} status code", response.statusCode());

        if (response.statusCode() == HttpStatusCode.OK_200) {
            responseHandler.handle(new UserInfoResponse(true, buffer.toString()));
        } else {/* ww w . ja  va  2  s  .  c  o  m*/
            responseHandler.handle(new UserInfoResponse(false, buffer.toString()));
        }
    }));

    request.exceptionHandler(event -> {
        logger.error("An error occurs while getting userinfo from access_token", event);
        responseHandler.handle(new UserInfoResponse(false, event.getMessage()));
    });

    request.end();
}