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.bytesoft.bytejta.supports.springcloud.web.TransactionRequestInterceptor.java

private void invokeAfterRecvResponse(ClientHttpResponse httpResponse, boolean serverFlag) throws IOException {
    SpringCloudBeanRegistry beanRegistry = SpringCloudBeanRegistry.getInstance();
    TransactionBeanFactory beanFactory = beanRegistry.getBeanFactory();
    TransactionInterceptor transactionInterceptor = beanFactory.getTransactionInterceptor();

    HttpHeaders respHeaders = httpResponse.getHeaders();
    String respTransactionStr = respHeaders.getFirst(HEADER_TRANCACTION_KEY);
    String respPropagationStr = respHeaders.getFirst(HEADER_PROPAGATION_KEY);

    byte[] byteArray = ByteUtils.stringToByteArray(StringUtils.trimToNull(respTransactionStr));
    TransactionContext serverContext = (TransactionContext) CommonUtils.deserializeObject(byteArray);

    TransactionResponseImpl txResp = new TransactionResponseImpl();
    txResp.setTransactionContext(serverContext);
    RemoteCoordinator serverCoordinator = beanRegistry.getConsumeCoordinator(respPropagationStr);
    txResp.setSourceTransactionCoordinator(serverCoordinator);
    txResp.setParticipantDelistFlag(serverFlag ? false : true);

    transactionInterceptor.afterReceiveResponse(txResp);
}

From source file:org.bytesoft.bytetcc.supports.springcloud.ext.CompensableRequestInterceptor.java

private void invokeAfterRecvResponse(ClientHttpResponse httpResponse, boolean serverFlag) throws IOException {
    SpringCloudBeanRegistry beanRegistry = SpringCloudBeanRegistry.getInstance();
    CompensableBeanFactory beanFactory = beanRegistry.getBeanFactory();
    TransactionInterceptor transactionInterceptor = beanFactory.getTransactionInterceptor();

    HttpHeaders respHeaders = httpResponse.getHeaders();
    String respTransactionStr = respHeaders.getFirst(HEADER_TRANCACTION_KEY);
    String respPropagationStr = respHeaders.getFirst(HEADER_PROPAGATION_KEY);

    byte[] byteArray = ByteUtils.stringToByteArray(StringUtils.trimToNull(respTransactionStr));
    TransactionContext serverContext = (TransactionContext) CommonUtils.deserializeObject(byteArray);

    TransactionResponseImpl txResp = new TransactionResponseImpl();
    txResp.setTransactionContext(serverContext);
    RemoteCoordinator serverCoordinator = beanRegistry.getConsumeCoordinator(respPropagationStr);
    txResp.setSourceTransactionCoordinator(serverCoordinator);
    txResp.setParticipantDelistFlag(serverFlag ? false : true);

    transactionInterceptor.afterReceiveResponse(txResp);
}

From source file:org.craftercms.commons.rest.HttpMessageConvertingResponseErrorHandler.java

protected String getResponseBodyAsString(ClientHttpResponse response) throws IOException {
    return IOUtils.toString(response.getBody(), response.getHeaders().getContentType().getCharset());
}

From source file:org.cruk.genologics.api.GenologicsAPIBatchOperationTest.java

@Test
public void testArtifactBatchFetch() throws Exception {
    List<LimsLink<Artifact>> links = new ArrayList<LimsLink<Artifact>>();

    links.add(new ArtifactLink(new URI("http://limsdev.cri.camres.org:8080/api/v2/artifacts/2-1000624")));
    links.add(new ArtifactLink(new URI("http://limsdev.cri.camres.org:8080/api/v2/artifacts/2-1000622")));
    links.add(new ArtifactLink(new URI("http://limsdev.cri.camres.org:8080/api/v2/artifacts/2-1000605")));
    links.add(new ArtifactLink(new URI("http://limsdev.cri.camres.org:8080/api/v2/artifacts/2-1000623")));
    links.add(new ArtifactLink(new URI("http://limsdev.cri.camres.org:8080/api/v2/artifacts/2-1000625")));

    File expectedResultFile = new File("src/test/xml/batchtestreordering-artifacts.xml");
    String expectedReply = FileUtils.readFileToString(expectedResultFile);

    URI uri = new URI("http://limsdev.cri.camres.org:8080/api/v2/artifacts/batch/retrieve");

    // Note: need PushbackInputStream to prevent the call to getBody() being made more than once.
    // See MessageBodyClientHttpResponseWrapper.

    InputStream responseStream = new PushbackInputStream(new ByteArrayInputStream(expectedReply.getBytes()));

    HttpHeaders headers = new HttpHeaders();

    ClientHttpResponse httpResponse = EasyMock.createMock(ClientHttpResponse.class);
    EasyMock.expect(httpResponse.getStatusCode()).andReturn(HttpStatus.OK).anyTimes();
    EasyMock.expect(httpResponse.getRawStatusCode()).andReturn(HttpStatus.OK.value()).anyTimes();
    EasyMock.expect(httpResponse.getHeaders()).andReturn(headers).anyTimes();
    EasyMock.expect(httpResponse.getBody()).andReturn(responseStream).once();
    httpResponse.close();/* w w w. j a va  2s . c o  m*/
    EasyMock.expectLastCall().once();

    ClientHttpRequest httpRequest = EasyMock.createMock(ClientHttpRequest.class);
    EasyMock.expect(httpRequest.getHeaders()).andReturn(headers).anyTimes();
    EasyMock.expect(httpRequest.getBody()).andReturn(new NullOutputStream()).times(0, 2);
    EasyMock.expect(httpRequest.execute()).andReturn(httpResponse).once();

    ClientHttpRequestFactory mockFactory = EasyMock.createStrictMock(ClientHttpRequestFactory.class);
    EasyMock.expect(mockFactory.createRequest(uri, HttpMethod.POST)).andReturn(httpRequest).once();

    restTemplate.setRequestFactory(mockFactory);

    EasyMock.replay(httpResponse, httpRequest, mockFactory);

    List<Artifact> artifacts = api.loadAll(links);

    assertEquals("Wrong number of artifacts", links.size(), artifacts.size());

    for (int i = 0; i < links.size(); i++) {
        assertTrue("Artifact " + i + " wrong: " + artifacts.get(i).getUri(),
                artifacts.get(i).getUri().toString().startsWith(links.get(i).getUri().toString()));
    }

    EasyMock.verify(httpResponse, httpRequest, mockFactory);
}

From source file:org.cruk.genologics.api.GenologicsAPIBatchOperationTest.java

@Test
public void testArtifactBatchUpdate() throws Exception {
    File expectedResultFile = new File("src/test/xml/batchtestreordering-artifacts.xml");
    String expectedReply = FileUtils.readFileToString(expectedResultFile);

    ArtifactBatchFetchResult updateArtifactsFetch = (ArtifactBatchFetchResult) marshaller
            .unmarshal(new StreamSource(expectedResultFile));

    List<Artifact> artifacts = updateArtifactsFetch.getArtifacts();

    // Rearrange these to a different order to that in the file.
    // This means the original XML file loaded above will return in an order
    // not matching either the Links object (below) or the original order
    // of the artifacts.
    Collections.shuffle(artifacts, new Random(997));

    // Copy the URI order as it is now to make sure it doesn't differ
    // after updating the artifacts.
    List<URI> uriOrder = new ArrayList<URI>();

    Links confirmLinks = new Links();
    for (Artifact a : artifacts) {
        uriOrder.add(a.getUri());/*from  w  w  w  . j  av  a2s.  com*/
        confirmLinks.getLinks().add(new Link(a));
    }

    // The Links object that (would) come back should be in a different order.
    Collections.shuffle(confirmLinks.getLinks(), new Random(1024));

    StringWriter linksXML = new StringWriter();
    marshaller.marshal(confirmLinks, new StreamResult(linksXML));

    // Two calls to make here.

    URI updateUri = new URI("http://limsdev.cri.camres.org:8080/api/v2/artifacts/batch/update");
    URI retrieveUri = new URI("http://limsdev.cri.camres.org:8080/api/v2/artifacts/batch/retrieve");

    // Note: need PushbackInputStream to prevent the call to getBody() being made more than once.
    // See MessageBodyClientHttpResponseWrapper.

    InputStream response1Stream = new PushbackInputStream(
            new ByteArrayInputStream(linksXML.toString().getBytes()));
    InputStream response2Stream = new PushbackInputStream(new ByteArrayInputStream(expectedReply.getBytes()));

    HttpHeaders headers = new HttpHeaders();

    ClientHttpResponse httpResponse1 = EasyMock.createMock(ClientHttpResponse.class);
    EasyMock.expect(httpResponse1.getStatusCode()).andReturn(HttpStatus.OK).anyTimes();
    EasyMock.expect(httpResponse1.getRawStatusCode()).andReturn(HttpStatus.OK.value()).anyTimes();
    EasyMock.expect(httpResponse1.getHeaders()).andReturn(headers).anyTimes();
    EasyMock.expect(httpResponse1.getBody()).andReturn(response1Stream).once();
    httpResponse1.close();
    EasyMock.expectLastCall().once();

    ClientHttpRequest httpRequest1 = EasyMock.createMock(ClientHttpRequest.class);
    EasyMock.expect(httpRequest1.getHeaders()).andReturn(headers).anyTimes();
    EasyMock.expect(httpRequest1.getBody()).andReturn(new NullOutputStream()).times(0, 2);
    EasyMock.expect(httpRequest1.execute()).andReturn(httpResponse1).once();

    ClientHttpResponse httpResponse2 = EasyMock.createMock(ClientHttpResponse.class);
    EasyMock.expect(httpResponse2.getStatusCode()).andReturn(HttpStatus.OK).anyTimes();
    EasyMock.expect(httpResponse2.getRawStatusCode()).andReturn(HttpStatus.OK.value()).anyTimes();
    EasyMock.expect(httpResponse2.getHeaders()).andReturn(headers).anyTimes();
    EasyMock.expect(httpResponse2.getBody()).andReturn(response2Stream).once();
    httpResponse2.close();
    EasyMock.expectLastCall().once();

    ClientHttpRequest httpRequest2 = EasyMock.createMock(ClientHttpRequest.class);
    EasyMock.expect(httpRequest2.getHeaders()).andReturn(headers).anyTimes();
    EasyMock.expect(httpRequest2.getBody()).andReturn(new NullOutputStream()).times(0, 2);
    EasyMock.expect(httpRequest2.execute()).andReturn(httpResponse2).once();

    ClientHttpRequestFactory mockFactory = EasyMock.createStrictMock(ClientHttpRequestFactory.class);
    EasyMock.expect(mockFactory.createRequest(updateUri, HttpMethod.POST)).andReturn(httpRequest1).once();
    EasyMock.expect(mockFactory.createRequest(retrieveUri, HttpMethod.POST)).andReturn(httpRequest2).once();

    restTemplate.setRequestFactory(mockFactory);

    EasyMock.replay(httpResponse1, httpRequest1, httpResponse2, httpRequest2, mockFactory);

    api.updateAll(artifacts);

    assertEquals("Wrong number of artifacts", uriOrder.size(), artifacts.size());

    for (int i = 0; i < uriOrder.size(); i++) {
        assertEquals("Artifact " + i + " wrong:", uriOrder.get(i), artifacts.get(i).getUri());
    }

    EasyMock.verify(httpResponse2, httpRequest2, mockFactory);
}

From source file:org.jgrades.rest.client.StatefullRestTemplate.java

@Override
protected void handleResponse(URI url, HttpMethod method, ClientHttpResponse response) throws IOException {
    HttpHeaders headers = response.getHeaders();
    if (headers.containsKey("Set-Cookie")) {
        cookie = headers.get("Set-Cookie").get(0);
    }//www . ja v a  2 s  .  c o m
    super.handleResponse(url, method, response);
}

From source file:org.springframework.boot.context.embedded.AbstractEmbeddedServletContainerFactoryTests.java

@Test
public void mimeType() throws Exception {
    FileCopyUtils.copy("test", new FileWriter(this.temporaryFolder.newFile("test.xxcss")));
    AbstractEmbeddedServletContainerFactory factory = getFactory();
    factory.setDocumentRoot(this.temporaryFolder.getRoot());
    MimeMappings mimeMappings = new MimeMappings();
    mimeMappings.add("xxcss", "text/css");
    factory.setMimeMappings(mimeMappings);
    this.container = factory.getEmbeddedServletContainer();
    this.container.start();
    ClientHttpResponse response = getClientResponse("http://localhost:8080/test.xxcss");
    assertThat(response.getHeaders().getContentType().toString(), equalTo("text/css"));
    response.close();//from ww w .  ja  v a2  s .co m
}

From source file:org.springframework.cloud.netflix.turbine.stream.TurbineStreamTests.java

private ResponseEntity<String> extract(ClientHttpResponse response) throws IOException {
    // The message has to be sent after the endpoint is activated, so this is a
    // convenient place to put it
    stubTrigger.trigger("metrics");
    byte[] bytes = new byte[1024];
    StringBuilder builder = new StringBuilder();
    int read = 0;
    while (read >= 0 && StringUtils.countOccurrencesOf(builder.toString(), "\n") < 2) {
        read = response.getBody().read(bytes, 0, bytes.length);
        if (read > 0) {
            latch.countDown();//from  w  w  w . j  av  a2  s.  co m
            builder.append(new String(bytes, 0, read));
        }
        log.debug("Building: " + builder);
    }
    log.debug("Done: " + builder);
    return ResponseEntity.status(response.getStatusCode()).headers(response.getHeaders())
            .body(builder.toString());
}

From source file:org.springframework.samples.portfolio.web.tomcat.IntegrationPortfolioTests.java

private static void loginAndSaveJsessionIdCookie(final String user, final String password,
        final HttpHeaders headersToUpdate) {

    String url = "http://localhost:" + port + "/login.html";

    new RestTemplate().execute(url, HttpMethod.POST,

            new RequestCallback() {
                @Override//from w  w  w .  j  a v  a  2  s  .c  o m
                public void doWithRequest(ClientHttpRequest request) throws IOException {
                    MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
                    map.add("username", user);
                    map.add("password", password);
                    new FormHttpMessageConverter().write(map, MediaType.APPLICATION_FORM_URLENCODED, request);
                }
            },

            new ResponseExtractor<Object>() {
                @Override
                public Object extractData(ClientHttpResponse response) throws IOException {
                    headersToUpdate.add("Cookie", response.getHeaders().getFirst("Set-Cookie"));
                    return null;
                }
            });
}

From source file:org.springframework.web.client.HttpMessageConverterExtractor.java

private MediaType getContentType(ClientHttpResponse response) {
    MediaType contentType = response.getHeaders().getContentType();
    if (contentType == null) {
        if (logger.isTraceEnabled()) {
            logger.trace("No Content-Type header found, defaulting to application/octet-stream");
        }//from ww  w.j av a  2  s .c om
        contentType = MediaType.APPLICATION_OCTET_STREAM;
    }
    return contentType;
}