Example usage for org.springframework.http.client ClientHttpResponse getHeaders

List of usage examples for org.springframework.http.client ClientHttpResponse getHeaders

Introduction

In this page you can find the example usage for org.springframework.http.client ClientHttpResponse getHeaders.

Prototype

HttpHeaders getHeaders();

Source Link

Document

Return the headers of this message.

Usage

From source file:org.cloudfoundry.client.lib.rest.LoggingRestTemplate.java

@Override
protected <T> T doExecute(URI url, HttpMethod method, RequestCallback requestCallback,
        final ResponseExtractor<T> responseExtractor) throws RestClientException {
    final String[] status = new String[1];
    final HttpStatus[] httpStatus = new HttpStatus[1];
    final Object[] headers = new Object[1];
    final String[] message = new String[1];
    T results = null;//from   w w  w  . j  av a2s .  c  o m
    RestClientException exception = null;
    try {
        results = super.doExecute(url, method, requestCallback, new ResponseExtractor<T>() {
            @SuppressWarnings("rawtypes")
            public T extractData(ClientHttpResponse response) throws IOException {
                httpStatus[0] = response.getStatusCode();
                headers[0] = response.getHeaders();
                T data = null;
                if (responseExtractor != null && (data = responseExtractor.extractData(response)) != null) {
                    if (data instanceof String) {
                        message[0] = ((String) data).length() + " bytes";
                    } else if (data instanceof Map) {
                        message[0] = ((Map) data).keySet().toString();
                    } else {
                        message[0] = data.getClass().getName();
                    }
                    return data;
                } else {
                    message[0] = "<no data>";
                    return null;
                }
            }
        });
        status[0] = "OK";
    } catch (RestClientException e) {
        status[0] = "ERROR";
        message[0] = e.getMessage();
        exception = e;
        if (e instanceof HttpStatusCodeException) {
            httpStatus[0] = ((HttpStatusCodeException) e).getStatusCode();
        }
    }
    addLogMessage(method, url, status[0], httpStatus[0], message[0]);
    if (exception != null) {
        throw exception;
    }
    return results;
}

From source file:org.bremersee.common.web.client.ResponseErrorHandlerImpl.java

/**
 * Find a throwable instance of the HTTP response.
 *
 * @param response the HTTP response/* ww  w  .j a v  a2 s .co m*/
 * @return the throwable
 * @throws IOException if the response cannot be parsed
 */
protected Throwable findThrowable(final ClientHttpResponse response) throws IOException {
    final MediaType contentType = response.getHeaders().getContentType();
    try {
        if (contentType.includes(MediaType.APPLICATION_XML)) {
            return findThrowableFromXml(response);
        } else {
            return findThrowableFromJson(response);
        }

    } catch (RuntimeException re) { // NOSONAR

        return findThrowableByStatusCode(response);
    }
}

From source file:cz.jirutka.spring.http.client.cache.DefaultCachingPolicy.java

/**
 * Whether the given response should be cached.
 *//*from   w  w w . j  a v  a  2 s .  co  m*/
protected boolean isExplicitlyCacheable(ClientHttpResponse response) {
    CacheControl cc = parseCacheControl(response.getHeaders());

    return cc.isPublic() || cc.isMustRevalidate() || cc.isProxyRevalidate() || cc.getMaxAge(sharedCache) > 0;
}

From source file:cz.jirutka.spring.http.client.cache.DefaultCachingPolicy.java

/**
 * Whether the given response must not be cached.
 *//*  ww w .  j a  v a 2s .  c  o m*/
protected boolean isExplicitlyNonCacheable(ClientHttpResponse response) {
    CacheControl cc = parseCacheControl(response.getHeaders());

    return cc.isNoStore() || cc.isNoCache() || (sharedCache && cc.isPrivate())
            || cc.getMaxAge(sharedCache) == 0;
}

From source file:com.artivisi.belajar.restful.ui.controller.ApplicationConfigControllerTestIT.java

@SuppressWarnings("unchecked")
@Test//from w ww  .  ja  va  2  s  .  c  o m
public void testUploadPakaiRestTemplate() {
    RestTemplate rest = new RestTemplate();

    String jsessionid = rest.execute(login, HttpMethod.POST, new RequestCallback() {
        @Override
        public void doWithRequest(ClientHttpRequest request) throws IOException {
            request.getBody().write(("j_username=" + username + "&j_password=" + password).getBytes());
        }
    }, new ResponseExtractor<String>() {
        @Override
        public String extractData(ClientHttpResponse response) throws IOException {
            List<String> cookies = response.getHeaders().get("Cookie");

            // assuming only one cookie with jsessionid as the only value
            if (cookies == null) {
                cookies = response.getHeaders().get("Set-Cookie");
            }

            String cookie = cookies.get(cookies.size() - 1);

            int start = cookie.indexOf('=');
            int end = cookie.indexOf(';');

            return cookie.substring(start + 1, end);
        }
    });

    MultiValueMap<String, Object> form = new LinkedMultiValueMap<String, Object>();
    form.add("foto", new FileSystemResource("src/test/resources/foto-endy.jpg"));
    form.add("Filename", "cv-endy.pdf");
    form.add("cv", new FileSystemResource("src/test/resources/resume-endy-en.pdf"));
    form.add("keterangan", "File Endy");
    Map<String, String> result = rest.postForObject(target + "/abc123/files;jsessionid=" + jsessionid, form,
            Map.class);

    assertEquals("success", result.get("cv"));
    assertEquals("success", result.get("foto"));
    assertEquals("success", result.get("keterangan"));
}

From source file:cz.jirutka.spring.http.client.cache.internal.SizeLimitedHttpResponseReader.java

private InMemoryClientHttpResponse createInMemoryResponse(ClientHttpResponse originalResponse,
        ByteArrayOutputStream body) throws IOException {

    HttpStatus status = originalResponse.getStatusCode();
    HttpHeaders headers = originalResponse.getHeaders();

    return new InMemoryClientHttpResponse(body.toByteArray(), status, headers);
}

From source file:nl.gridshore.nosapi.impl.NosApiResponseErrorHandler.java

@Override
public void handleError(ClientHttpResponse response) throws IOException {
    logger.debug("Handle error '{}' received from the NOS server.", response.getStatusCode().name());
    HttpStatus statusCode = response.getStatusCode();
    MediaType contentType = response.getHeaders().getContentType();
    Charset charset = contentType != null ? contentType.getCharSet() : null;
    byte[] body = FileCopyUtils.copyToByteArray(response.getBody());

    switch (statusCode) {
    case BAD_REQUEST:
    case UNAUTHORIZED:
    case FORBIDDEN:
        throwClientException(charset, body);
    default:// w  w w  .j  a v  a2  s.c  om
        // do nothing, let the series resolving do it' work
    }

    switch (statusCode.series()) {
    case CLIENT_ERROR:
        throw new HttpClientErrorException(statusCode, response.getStatusText(), body, charset);
    case SERVER_ERROR:
        throw new HttpServerErrorException(statusCode, response.getStatusText(), body, charset);
    default:
        throw new RestClientException("Unknown status code [" + statusCode + "]");
    }
}

From source file:org.syncope.client.validation.SyncopeClientErrorHandler.java

@Override
public void handleError(final ClientHttpResponse response) throws IOException {

    if (!ArrayUtils.contains(MANAGED_STATUSES, response.getStatusCode())) {
        super.handleError(response);
    }//ww w. jav  a  2  s .  co m

    List<String> exceptionTypesInHeaders = response.getHeaders().get(EXCEPTION_TYPE_HEADER);
    if (exceptionTypesInHeaders == null) {
        LOG.debug("No " + EXCEPTION_TYPE_HEADER + " provided");

        return;
    }

    SyncopeClientCompositeErrorException compositeException = new SyncopeClientCompositeErrorException(
            response.getStatusCode());

    Set<String> handledExceptions = new HashSet<String>();
    for (String exceptionTypeAsString : exceptionTypesInHeaders) {
        SyncopeClientExceptionType exceptionType = null;
        try {
            exceptionType = SyncopeClientExceptionType.getFromHeaderValue(exceptionTypeAsString);
        } catch (IllegalArgumentException e) {
            LOG.error("Unexpected value of " + EXCEPTION_TYPE_HEADER + ": " + exceptionTypeAsString, e);
        }
        if (exceptionType != null) {
            handledExceptions.add(exceptionTypeAsString);

            SyncopeClientException clientException = new SyncopeClientException();
            clientException.setType(exceptionType);
            if (response.getHeaders().get(exceptionType.getElementHeaderName()) != null
                    && !response.getHeaders().get(exceptionType.getElementHeaderName()).isEmpty()) {

                clientException.setElements(response.getHeaders().get(exceptionType.getElementHeaderName()));
            }

            compositeException.addException(clientException);
        }
    }

    exceptionTypesInHeaders.removeAll(handledExceptions);
    if (!exceptionTypesInHeaders.isEmpty()) {
        LOG.error("Unmanaged exceptions: " + exceptionTypesInHeaders);
    }

    if (compositeException.hasExceptions()) {
        throw compositeException;
    }
}

From source file:de.zib.gndms.gndmc.test.gorfx.ESGFGet.java

@Override
protected void run() throws Exception {

    SetupSSL setupSSL = new SetupSSL();
    setupSSL.setKeyStoreLocation(keyStoreLocation);
    setupSSL.prepareKeyStore(passwd, passwd);
    setupSSL.setupDefaultSSLContext(passwd);

    final RestTemplate rt = new RestTemplate();

    rt.execute(url, HttpMethod.GET, null, new ResponseExtractor<Object>() {
        @Override//w ww .ja  va2s  . co  m
        public Object extractData(final ClientHttpResponse response) throws IOException {

            String url = null;
            String cookieTmp = null;
            System.out.println(response.getStatusCode().toString());
            for (String s : response.getHeaders().keySet())
                for (String v : response.getHeaders().get(s)) {
                    System.out.println(s + ":" + v);
                    if ("Location".equals(s))
                        url = v;
                    else if ("Set-Cookie".equals(s))
                        cookieTmp = v;
                }
            final String cookie = cookieTmp.split(";")[0];

            if (url != null)
                rt.execute(decodeUrl(url), HttpMethod.GET, new RequestCallback() {
                    @Override
                    public void doWithRequest(final ClientHttpRequest request) throws IOException {

                        System.out.println("setting cookie: " + cookie);
                        request.getHeaders().set("Cookie", cookie);
                    }
                }, new ResponseExtractor<Object>() {
                    @Override
                    public Object extractData(final ClientHttpResponse response) throws IOException {

                        System.out.println(response.getStatusCode().toString());
                        System.out.println("Received data, copying");
                        InputStream is = response.getBody();
                        OutputStream os = new FileOutputStream(off);
                        StreamCopyNIO.copyStream(is, os);
                        System.out.println("Done");
                        return null;
                    }
                });

            return null;
        }
    });
}

From source file:sparklr.common.AbstractEmptyAuthorizationCodeProviderTests.java

@BeforeOAuth2Context
public void setupAccessTokenProvider() {
    accessTokenProvider = new AuthorizationCodeAccessTokenProvider() {

        private ResponseExtractor<OAuth2AccessToken> extractor = super.getResponseExtractor();

        private ResponseExtractor<ResponseEntity<Void>> authExtractor = super.getAuthorizationResponseExtractor();

        private ResponseErrorHandler errorHandler = super.getResponseErrorHandler();

        @Override/*ww w.ja  v  a2s  .c  om*/
        protected ResponseErrorHandler getResponseErrorHandler() {
            return new DefaultResponseErrorHandler() {
                public void handleError(ClientHttpResponse response) throws IOException {
                    response.getHeaders();
                    response.getStatusCode();
                    tokenEndpointResponse = response;
                    errorHandler.handleError(response);
                }
            };
        }

        @Override
        protected ResponseExtractor<OAuth2AccessToken> getResponseExtractor() {
            return new ResponseExtractor<OAuth2AccessToken>() {

                public OAuth2AccessToken extractData(ClientHttpResponse response) throws IOException {
                    try {
                        response.getHeaders();
                        response.getStatusCode();
                        tokenEndpointResponse = response;
                        return extractor.extractData(response);
                    } catch (ResourceAccessException e) {
                        return null;
                    }
                }

            };
        }

        @Override
        protected ResponseExtractor<ResponseEntity<Void>> getAuthorizationResponseExtractor() {
            return new ResponseExtractor<ResponseEntity<Void>>() {

                public ResponseEntity<Void> extractData(ClientHttpResponse response) throws IOException {
                    response.getHeaders();
                    response.getStatusCode();
                    tokenEndpointResponse = response;
                    return authExtractor.extractData(response);
                }
            };
        }
    };
    context.setAccessTokenProvider(getAccessTokenProvider());
}