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

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

Introduction

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

Prototype

InputStream getBody() throws IOException;

Source Link

Document

Return the body of the message as an input stream.

Usage

From source file:org.cloudfoundry.caldecott.client.HttpTunnel.java

private byte[] receiveDataBuffered(long page) {
    final String dataUrl = url + this.tunnelInfo.get("path_out") + "/" + page;
    byte[] responseBytes;
    try {//from   w ww.  j a va 2  s  . co  m
        responseBytes = restOperations.execute(dataUrl, HttpMethod.GET, new RequestCallback() {
            public void doWithRequest(ClientHttpRequest clientHttpRequest) throws IOException {
                clientHttpRequest.getHeaders().set("Auth-Token", auth);
            }
        }, new ResponseExtractor<byte[]>() {
            public byte[] extractData(ClientHttpResponse clientHttpResponse) throws IOException {
                if (logger.isDebugEnabled()) {
                    logger.debug("HEADER: " + clientHttpResponse.getHeaders().toString());
                }
                InputStream stream = clientHttpResponse.getBody();
                byte[] data = readContentData(stream);
                if (logger.isDebugEnabled()) {
                    logger.debug("[" + data.length + " bytes] GET from " + dataUrl + " resulted in: "
                            + clientHttpResponse.getStatusCode());
                }
                return data;
            }
        });
    } catch (HttpStatusCodeException e) {
        if (logger.isDebugEnabled()) {
            logger.debug("GET from " + dataUrl + " resulted in: " + e.getStatusCode().value());
        }
        throw e;
    }
    return responseBytes;
}

From source file:org.openflamingo.uploader.handler.HttpToLocalHandler.java

/**
 * HTTP  URL? .// w w w  . j a  v  a 2s . c  om
 *
 * @param http HTTP
 * @return HTTP Response String
 * @throws Exception HTTP ? ?? ? ? 
 */
private String getResponse(Http http) throws Exception {
    jobLogger.info("HTTP URL?    ?  .");

    String url = jobContext.getValue(http.getUrl());
    String method = jobContext.getValue(http.getMethod().getType());
    String body = jobContext.getValue(http.getBody());

    jobLogger.info("HTTP URL Information :");
    jobLogger.info("\tURL = {}", url);
    jobLogger.info("\tMethod = {}", method);

    HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
    ClientHttpRequest request = null;
    if ("POST".equals(method)) {
        request = factory.createRequest(new java.net.URI(url), POST);
    } else {
        request = factory.createRequest(new java.net.URI(url), GET);
    }

    if (http.getHeaders() != null && http.getHeaders().getHeader().size() > 0) {
        List<Header> header = http.getHeaders().getHeader();
        jobLogger.info("HTTP Header :", new String[] {});
        for (Header h : header) {
            String name = h.getName();
            String value = jobContext.getValue(h.getValue());
            request.getHeaders().add(name, value);
            jobLogger.info("\t{} = {}", name, value);
        }
    }

    String responseBodyAsString = null;
    ClientHttpResponse response = null;
    try {
        response = request.execute();
        responseBodyAsString = new String(FileCopyUtils.copyToByteArray(response.getBody()),
                Charset.defaultCharset());
        jobLogger.debug("HTTP ? ?  ? .\n{}", responseBodyAsString);
        jobLogger.info("HTTP ? . ?  '{}({})'.",
                response.getStatusText(), response.getRawStatusCode());
        if (response.getRawStatusCode() != HttpStatus.ORDINAL_200_OK) {
            throw new SystemException(ExceptionUtils.getMessage(
                    "HTTP URL ? . ? OK  '{}({})'  ? .",
                    response.getStatusText(), response.getRawStatusCode()));
        }
    } catch (Exception ex) {
        ex.printStackTrace();
        throw new SystemException(
                ExceptionUtils.getMessage("HTTP URL ? . ? : {}",
                        ExceptionUtils.getRootCause(ex).getMessage()),
                ex);
    } finally {
        try {
            response.close();
        } catch (Exception ex) {
            // Ignored
        }
    }
    return responseBodyAsString;
}

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  av  a  2s.  c  o m*/
        // 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:com.card.loop.xyz.controller.LearningObjectController.java

public void uploadAllLOToInformatron() {
    try {/* www  .  j a  va2  s  .c om*/
        SimpleClientHttpRequestFactory rf = new SimpleClientHttpRequestFactory();
        ClientHttpRequest req = rf.createRequest(
                URI.create(AppConfig.LOOP_URL + "/loop-XYZ/loop/LO/availableLO"), HttpMethod.GET);
        ClientHttpResponse response = req.execute();

        StringBuilder sb = new StringBuilder();
        BufferedReader br = new BufferedReader(new InputStreamReader(response.getBody()));
        ClientHttpRequest req2 = rf.createRequest(
                URI.create(AppConfig.INFORMATRON_URL + "/InformatronYX/informatron/LO/upload/availableLOs"),
                HttpMethod.POST);
        BufferedWriter req2Writer = new BufferedWriter(new OutputStreamWriter(req2.getBody()));
        String string = br.readLine();
        br.close();

        req2Writer.write(string);
        req2Writer.close();
        req2.getHeaders().add("Content-Type", "application/json");
        System.out.println(string);
        ClientHttpResponse response2 = req2.execute();
        BufferedReader reader = new BufferedReader(new InputStreamReader(response2.getBody()));

        try {
            String str = reader.readLine();
            if (str.equals("true"))
                System.out.println("SUCCESS!!");
            else
                System.err.println("FAILL!!");
        } catch (Exception ex) {
            Logger.getLogger(LearningObjectController.class.getName()).log(Level.SEVERE, null, ex);
        }
    } catch (IOException ex) {
        Logger.getLogger(LearningObjectController.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:org.springframework.social.exfm.api.impl.ExFmErrorHandler.java

@Override
public boolean hasError(ClientHttpResponse response) throws IOException {

    if (super.hasError(response)) {
        Status errorDetails = extractErrorDetailsFromResponse(response);
        return !isIgnorableError(errorDetails);
    }//from   w  w w  .ja va2 s.c  o m
    // only bother checking the body for errors if we get past the default
    // error check
    String content = readFully(response.getBody());
    return !content.contains("\"status_code\": 200") && !content.contains("\"status_code\":200");
}

From source file:co.mafiagame.telegraminterface.inputhandler.UpdateController.java

private void setErrorHandler(RestTemplate restTemplate) {
    restTemplate.setErrorHandler(new ResponseErrorHandler() {
        @Override//  w  ww  .  j  av a2 s  . co  m
        public boolean hasError(ClientHttpResponse clientHttpResponse) throws IOException {
            return !clientHttpResponse.getStatusCode().equals(HttpStatus.OK);
        }

        @Override
        public void handleError(ClientHttpResponse clientHttpResponse) throws IOException {
            logger.error("error calling telegram getUpdate\n code:{}\n{}", clientHttpResponse.getStatusCode(),
                    IOUtils.toString(clientHttpResponse.getBody()));
        }
    });
}

From source file:sparklr.common.AbstractAuthorizationCodeProviderTests.java

private void verifyAuthorizationPage(OAuth2RestTemplate restTemplate, String location) {
    final AtomicReference<String> confirmationPage = new AtomicReference<String>();
    AuthorizationCodeAccessTokenProvider provider = new AuthorizationCodeAccessTokenProvider() {
        @Override/*from w ww  . j  a v  a2  s.c  om*/
        protected ResponseExtractor<ResponseEntity<Void>> getAuthorizationResponseExtractor() {
            return new ResponseExtractor<ResponseEntity<Void>>() {
                public ResponseEntity<Void> extractData(ClientHttpResponse response) throws IOException {
                    confirmationPage
                            .set(StreamUtils.copyToString(response.getBody(), Charset.forName("UTF-8")));
                    return new ResponseEntity<Void>(response.getHeaders(), response.getStatusCode());
                }
            };
        }
    };
    try {
        provider.obtainAuthorizationCode(restTemplate.getResource(),
                restTemplate.getOAuth2ClientContext().getAccessTokenRequest());
    } catch (UserApprovalRequiredException e) {
        // ignore
    }
    String page = confirmationPage.get();
    verifyAuthorizationPage(page);
}

From source file:nu.yona.server.rest.RestClientErrorHandler.java

@Override
public void handleError(ClientHttpResponse response) throws IOException {
    logger.error("Response error: {} {}", getStatusCode(response), response.getStatusText());
    Optional<ErrorResponseDto> yonaErrorResponse = getYonaErrorResponse(response);
    yonaErrorResponse.ifPresent(yer -> {
        throw UpstreamException.yonaException(getStatusCode(response), yer.getCode(), yer.getMessage());
    });//from   ww w  .  j  av a 2  s .  c o  m
    throw UpstreamException.remoteServiceError(getStatusCode(response),
            convertStreamToString(response.getBody()));
}

From source file:org.springframework.social.exfm.api.impl.ExFmErrorHandler.java

private void handleUncategorizedError(ClientHttpResponse response, Status status) throws IOException {
    try {//from   w ww .j  av a2s .com
        super.handleError(response);
    } catch (Exception e) {
        if (status != null && !status.getStatus_code().equals("200")) {
            String m = status.getStatus_text();
            throw new UncategorizedApiException("exfm", m, e);
        } else {
            String content = readFully(response.getBody());
            if (content.contains("404 NOT FOUND")) {
                throw new ResourceNotFoundException("exfm", "Not found");
            }

            throw new UncategorizedApiException("exfm", "No error details from ExFm", e);
        }
    }
}

From source file:org.fao.geonet.utils.XmlRequest.java

protected final Element executeAndReadResponse(HttpRequestBase httpMethod)
        throws IOException, BadXmlResponseEx {

    final ClientHttpResponse httpResponse = doExecute(httpMethod);

    if (httpResponse.getRawStatusCode() > 399) {
        httpMethod.releaseConnection();// w ww. j  a va  2s  . c  o m
        throw new BadServerResponseEx(httpResponse.getStatusText() + " -- URI: " + httpMethod.getURI()
                + " -- Response Code: " + httpResponse.getRawStatusCode());
    }

    byte[] data = null;

    try {
        data = IOUtils.toByteArray(httpResponse.getBody());
        return Xml.loadStream(new ByteArrayInputStream(data));
    } catch (JDOMException e) {
        throw new BadXmlResponseEx(
                "Response: '" + new String(data, "UTF8") + "' (from URI " + httpMethod.getURI() + ")");
    } finally {
        httpMethod.releaseConnection();

        sentData = getSentData(httpMethod);
    }
}