Example usage for org.springframework.http HttpEntity getBody

List of usage examples for org.springframework.http HttpEntity getBody

Introduction

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

Prototype

@Nullable
public T getBody() 

Source Link

Document

Returns the body of this entity.

Usage

From source file:net.slkdev.swagger.confluence.service.impl.XHtmlToConfluenceServiceImpl.java

private void createPage(final ConfluencePage page, final Map<String, ConfluenceLink> confluenceLinkMap) {
    final SwaggerConfluenceConfig swaggerConfluenceConfig = SWAGGER_CONFLUENCE_CONFIG.get();
    final URI targetUrl = UriComponentsBuilder.fromUriString(swaggerConfluenceConfig.getConfluenceRestApiUrl())
            .path("/content").build().toUri();

    final HttpHeaders httpHeaders = buildHttpHeaders(swaggerConfluenceConfig.getAuthentication());
    final String formattedXHtml = reformatXHtml(page.getXhtml(), confluenceLinkMap);
    final String jsonPostBody = buildPostBody(page.getAncestorId(), page.getConfluenceTitle(), formattedXHtml)
            .toJSONString();/*from  w w w.ja va2 s. c o  m*/

    LOG.debug("CREATE PAGE REQUEST: {}", jsonPostBody);

    final HttpEntity<String> requestEntity = new HttpEntity<>(jsonPostBody, httpHeaders);

    final HttpEntity<String> responseEntity = restTemplate.exchange(targetUrl, HttpMethod.POST, requestEntity,
            String.class);

    LOG.debug("CREATE PAGE RESPONSE: {}", responseEntity.getBody());

    final Integer pageId = getPageIdFromResponse(responseEntity);
    page.setAncestorId(pageId);
}

From source file:net.slkdev.swagger.confluence.service.impl.XHtmlToConfluenceServiceImpl.java

private void updatePage(final ConfluencePage page, final Map<String, ConfluenceLink> confluenceLinkMap) {
    final SwaggerConfluenceConfig swaggerConfluenceConfig = SWAGGER_CONFLUENCE_CONFIG.get();

    final URI targetUrl = UriComponentsBuilder.fromUriString(swaggerConfluenceConfig.getConfluenceRestApiUrl())
            .path(String.format("/content/%s", page.getId())).build().toUri();

    final HttpHeaders httpHeaders = buildHttpHeaders(swaggerConfluenceConfig.getAuthentication());

    final JSONObject postVersionObject = new JSONObject();
    postVersionObject.put("number", page.getVersion() + 1);

    final String formattedXHtml = reformatXHtml(page.getXhtml(), confluenceLinkMap);
    final JSONObject postBody = buildPostBody(page.getAncestorId(), page.getConfluenceTitle(), formattedXHtml);
    postBody.put(ID, page.getId());//from w  w w.  j  a  v a  2  s.  c  o  m
    postBody.put("version", postVersionObject);

    final HttpEntity<String> requestEntity = new HttpEntity<>(postBody.toJSONString(), httpHeaders);

    LOG.debug("UPDATE PAGE REQUEST: {}", postBody);

    final HttpEntity<String> responseEntity = restTemplate.exchange(targetUrl, HttpMethod.PUT, requestEntity,
            String.class);

    LOG.debug("UPDATE PAGE RESPONSE: {}", responseEntity.getBody());

    final Integer pageId = getPageIdFromResponse(responseEntity);
    page.setAncestorId(pageId);
}

From source file:net.slkdev.swagger.confluence.service.impl.XHtmlToConfluenceServiceImplTest.java

@Test
public void testCreatePageWithPaginationModeIndividual() {
    final SwaggerConfluenceConfig swaggerConfluenceConfig = getTestSwaggerConfluenceConfig();
    swaggerConfluenceConfig.setPaginationMode(PaginationMode.INDIVIDUAL_PAGES);

    final String xhtml = IOUtils.readFull(
            AsciiDocToXHtmlServiceImplTest.class.getResourceAsStream("/swagger-petstore-xhtml-example.html"));

    for (int i = 0; i < 31; i++) {
        when(restTemplate.exchange(any(URI.class), eq(HttpMethod.GET), any(RequestEntity.class),
                eq(String.class))).thenReturn(responseEntity);
        when(responseEntity.getBody()).thenReturn(GET_RESPONSE_NOT_FOUND);
        when(restTemplate.exchange(any(URI.class), eq(HttpMethod.POST), any(HttpEntity.class),
                eq(String.class))).thenReturn(responseEntity);
        when(responseEntity.getBody()).thenReturn(POST_RESPONSE);
    }/*from  w  ww . j  a va2s . c  o  m*/

    final ArgumentCaptor<HttpEntity> httpEntityCaptor = ArgumentCaptor.forClass(HttpEntity.class);

    xHtmlToConfluenceService.postXHtmlToConfluence(swaggerConfluenceConfig, xhtml);

    verify(restTemplate, times(34)).exchange(any(URI.class), eq(HttpMethod.GET), any(RequestEntity.class),
            eq(String.class));
    verify(restTemplate, times(34)).exchange(any(URI.class), eq(HttpMethod.POST), httpEntityCaptor.capture(),
            eq(String.class));

    final HttpEntity<String> capturedHttpEntity = httpEntityCaptor.getAllValues().get(30);

    final String expectedPostBody = IOUtils.readFull(AsciiDocToXHtmlServiceImplTest.class
            .getResourceAsStream("/swagger-confluence-create-json-body-user-example.json"));

    assertNotNull("Failed to Capture RequestEntity for POST", capturedHttpEntity);
    // We'll do a full check on the last page versus a resource; not doing all of them as it
    // would be a pain to maintain, but this should give us a nod of confidence.
    assertEquals("Unexpected JSON Post Body", expectedPostBody, capturedHttpEntity.getBody());
}

From source file:io.seldon.client.services.ApiServiceImpl.java

private ResourceBean performPostGet(final String endpointUrl, final ResourceBean resourceBean, Class c) {
    ResourceBean bean;//from  w  w w .  j  ava2  s . c  o m
    if (token == null) {
        ResourceBean r = getToken();
        if (r instanceof ErrorBean)
            return r;
    }
    String url = endpointUrl + "&oauth_token=" + token;
    //header
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    HttpEntity<ResourceBean> entity = new HttpEntity<ResourceBean>(resourceBean, headers);
    RestTemplate template = createRestTemplate();
    try {
        logger.debug("* Posting: " + resourceBean);
        logger.debug("** Endpoint: " + url);
        // API return types for posts vary: Map on success, ErrorBean on failure -- we're forced to use Object here:
        ResponseEntity<ResourceBean> responseEntity;
        responseEntity = template.postForEntity(url, entity, c);
        bean = responseEntity.getBody();
    } catch (Exception e) {
        if (e.getCause() instanceof SocketTimeoutException) {
            return createTimeoutBean();
        }
        logger.error("Exception class: " + e.getClass());
        //logger.error("Failed Api Call for url: " + urlWithToken + " : " + e.toString());
        logger.error("*** NOK (" + url + "): " + e.getMessage());
        HttpEntity<ErrorBean> res;
        try {
            res = template.postForEntity(url, entity, ErrorBean.class);
        } catch (ResourceAccessException rae) {
            return createTimeoutBean();
        }
        bean = res.getBody();
    }
    if (bean instanceof ErrorBean) {
        if (((ErrorBean) bean).getError_id() != Constants.TOKEN_EXPIRED) {
            return bean;
        } else {
            logger.info("Token expired; fetching a new one.");
            ResourceBean r = getToken();
            if (r instanceof ErrorBean) {
                return r;
            } else {
                return performPostGet(endpointUrl, resourceBean, c);
            }
        }
    } else {
        return bean;
    }
}

From source file:net.slkdev.swagger.confluence.service.impl.XHtmlToConfluenceServiceImplTest.java

@Test
public void testCreatePageWithPaginationModeCategory() {
    final SwaggerConfluenceConfig swaggerConfluenceConfig = getTestSwaggerConfluenceConfig();
    swaggerConfluenceConfig.setPaginationMode(PaginationMode.CATEGORY_PAGES);

    final String xhtml = IOUtils.readFull(
            AsciiDocToXHtmlServiceImplTest.class.getResourceAsStream("/swagger-petstore-xhtml-example.html"));

    for (int i = 0; i < 5; i++) {
        when(restTemplate.exchange(any(URI.class), eq(HttpMethod.GET), any(RequestEntity.class),
                eq(String.class))).thenReturn(responseEntity);
        when(responseEntity.getBody()).thenReturn(GET_RESPONSE_NOT_FOUND);
        when(restTemplate.exchange(any(URI.class), eq(HttpMethod.POST), any(HttpEntity.class),
                eq(String.class))).thenReturn(responseEntity);
        when(responseEntity.getBody()).thenReturn(POST_RESPONSE);
    }//w w  w.  ja v a 2s  . c  o m

    final ArgumentCaptor<HttpEntity> httpEntityCaptor = ArgumentCaptor.forClass(HttpEntity.class);

    xHtmlToConfluenceService.postXHtmlToConfluence(swaggerConfluenceConfig, xhtml);

    verify(restTemplate, times(5)).exchange(any(URI.class), eq(HttpMethod.GET), any(RequestEntity.class),
            eq(String.class));
    verify(restTemplate, times(5)).exchange(any(URI.class), eq(HttpMethod.POST), httpEntityCaptor.capture(),
            eq(String.class));

    final HttpEntity<String> capturedHttpEntity = httpEntityCaptor.getAllValues().get(3);

    final String expectedPostBody = IOUtils.readFull(AsciiDocToXHtmlServiceImplTest.class
            .getResourceAsStream("/swagger-confluence-create-json-body-definitions-example.json"));

    assertNotNull("Failed to Capture RequeestEntity for POST", capturedHttpEntity);
    // We'll do a full check on the last page versus a resource; not doing all of them as it
    // would be a pain to maintain, but this should give us a nod of confidence.
    assertEquals("Unexpected JSON Post Body", expectedPostBody, capturedHttpEntity.getBody());
}

From source file:net.slkdev.swagger.confluence.service.impl.XHtmlToConfluenceServiceImplTest.java

@Test
public void testUpdatePageWithPaginationModeCategory() {
    final SwaggerConfluenceConfig swaggerConfluenceConfig = getTestSwaggerConfluenceConfig();
    swaggerConfluenceConfig.setPaginationMode(PaginationMode.CATEGORY_PAGES);

    final String xhtml = IOUtils.readFull(
            AsciiDocToXHtmlServiceImplTest.class.getResourceAsStream("/swagger-petstore-xhtml-example.html"));

    final ResponseEntity<String> postResponseEntity = new ResponseEntity<>(POST_RESPONSE, HttpStatus.OK);

    for (int i = 0; i < 5; i++) {
        when(restTemplate.exchange(any(URI.class), eq(HttpMethod.GET), any(RequestEntity.class),
                eq(String.class))).thenReturn(responseEntity);
        when(responseEntity.getBody()).thenReturn(GET_RESPONSE_FOUND);
        when(restTemplate.exchange(any(URI.class), eq(HttpMethod.PUT), any(RequestEntity.class),
                eq(String.class))).thenReturn(postResponseEntity);
    }//  w  w w  . ja  va 2 s. c o  m

    final ArgumentCaptor<HttpEntity> httpEntityCaptor = ArgumentCaptor.forClass(HttpEntity.class);

    xHtmlToConfluenceService.postXHtmlToConfluence(swaggerConfluenceConfig, xhtml);

    verify(restTemplate, times(5)).exchange(any(URI.class), eq(HttpMethod.GET), any(RequestEntity.class),
            eq(String.class));
    verify(restTemplate, times(5)).exchange(any(URI.class), eq(HttpMethod.PUT), httpEntityCaptor.capture(),
            eq(String.class));

    final HttpEntity<String> capturedHttpEntity = httpEntityCaptor.getAllValues().get(3);

    final String expectedPostBody = IOUtils.readFull(AsciiDocToXHtmlServiceImplTest.class
            .getResourceAsStream("/swagger-confluence-update-json-body-definitions-example.json"));

    assertNotNull("Failed to Capture RequeestEntity for POST", capturedHttpEntity);
    // We'll do a full check on the last page versus a resource; not doing all of them as it
    // would be a pain to maintain, but this should give us a nod of confidence.
    assertEquals("Unexpected JSON Post Body", expectedPostBody, capturedHttpEntity.getBody());
}

From source file:io.seldon.client.services.ApiServiceImpl.java

private ResourceBean getResource(final String url, Class<?> c) {
    logger.info("* GET Endpoint: " + url);
    ResourceBean bean;/*from www .j  av a  2s  . c  o  m*/
    if (token == null) {
        ResourceBean r = getToken();
        if (r instanceof ErrorBean)
            return r;
    }

    String urlWithToken = url + "&oauth_token=" + token;
    logger.debug("** Token: " + token);
    logger.debug("** Class: " + c.getName());
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    HttpEntity<String> entity = new HttpEntity<String>(headers);
    RestTemplate restTemplate = createRestTemplate();
    try {
        //logger.info("Calling end point: " + urlWithToken + " for class: " + c.getName());
        @SuppressWarnings("unchecked")
        HttpEntity<ResourceBean> res = (HttpEntity<ResourceBean>) restTemplate.exchange(urlWithToken,
                HttpMethod.GET, entity, c);
        logger.debug("Result: " + res.toString() + " : " + res.getBody());
        bean = res.getBody();
        logger.debug("*** OK (" + urlWithToken + ")");
    } catch (Exception e) {
        if (e.getCause() instanceof SocketTimeoutException) {
            return createTimeoutBean();
        }
        logger.error("Exception class: " + e.getClass());
        //logger.error("Failed Api Call for url: " + urlWithToken + " : " + e.toString());
        logger.error("*** NOK (" + urlWithToken + "): " + e.getMessage());
        HttpEntity<ErrorBean> res = null;
        try {
            res = restTemplate.exchange(urlWithToken, HttpMethod.GET, entity, ErrorBean.class);
        } catch (RestClientException e1) {
            if (e1.getCause() instanceof SocketTimeoutException) {
                return createTimeoutBean();
            }
        }
        bean = res.getBody();
    }
    if (bean instanceof ErrorBean) {
        if (((ErrorBean) bean).getError_id() != Constants.TOKEN_EXPIRED) {
            return bean;
        } else {
            logger.info("Token expired; fetching a new one.");
            ResourceBean r = getToken();
            if (r instanceof ErrorBean) {
                return r;
            } else {
                return getResource(url, c);
            }
        }
    } else {
        return bean;
    }
}

From source file:net.slkdev.swagger.confluence.service.impl.XHtmlToConfluenceServiceImplTest.java

@Test
public void testUpdatePageWithPaginationModeIndividual() {
    final SwaggerConfluenceConfig swaggerConfluenceConfig = getTestSwaggerConfluenceConfig();
    swaggerConfluenceConfig.setPaginationMode(PaginationMode.INDIVIDUAL_PAGES);

    final String xhtml = IOUtils.readFull(
            AsciiDocToXHtmlServiceImplTest.class.getResourceAsStream("/swagger-petstore-xhtml-example.html"));

    final ResponseEntity<String> postResponseEntity = new ResponseEntity<>(POST_RESPONSE, HttpStatus.OK);

    final List<String> returnJson = new ArrayList<>();

    when(restTemplate.exchange(any(URI.class), eq(HttpMethod.GET), any(RequestEntity.class), eq(String.class)))
            .thenReturn(responseEntity);

    for (int i = 0; i < 34; i++) {
        if (i > 0) {
            returnJson.add(GET_RESPONSE_FOUND);
        }//from  w w  w  .  j a  v a 2s. c  o  m

        if (CATEGORY_INDEXES.contains(i)) {
            returnJson.add(GET_CHILDREN);
        }
    }

    final String[] returnJsonArray = new String[returnJson.size()];
    returnJson.toArray(returnJsonArray);

    when(responseEntity.getBody()).thenReturn(GET_RESPONSE_FOUND, returnJsonArray);

    when(restTemplate.exchange(any(URI.class), eq(HttpMethod.DELETE), any(RequestEntity.class),
            eq(String.class))).thenReturn(responseEntity);
    when(responseEntity.getStatusCode()).thenReturn(HttpStatus.NO_CONTENT);

    when(restTemplate.exchange(any(URI.class), eq(HttpMethod.PUT), any(RequestEntity.class), eq(String.class)))
            .thenReturn(postResponseEntity);

    final ArgumentCaptor<HttpEntity> httpEntityCaptor = ArgumentCaptor.forClass(HttpEntity.class);

    xHtmlToConfluenceService.postXHtmlToConfluence(swaggerConfluenceConfig, xhtml);

    verify(restTemplate, times(38)).exchange(any(URI.class), eq(HttpMethod.GET), any(RequestEntity.class),
            eq(String.class));
    verify(restTemplate, times(34)).exchange(any(URI.class), eq(HttpMethod.PUT), httpEntityCaptor.capture(),
            eq(String.class));

    final HttpEntity<String> capturedHttpEntity = httpEntityCaptor.getAllValues().get(30);

    final String expectedPostBody = IOUtils.readFull(AsciiDocToXHtmlServiceImplTest.class
            .getResourceAsStream("/swagger-confluence-update-json-body-user-example.json"));

    assertNotNull("Failed to Capture RequestEntity for POST", capturedHttpEntity);
    // We'll do a full check on the last page versus a resource; not doing all of them as it
    // would be a pain to maintain, but this should give us a nod of confidence.
    assertEquals("Unexpected JSON Post Body", expectedPostBody, capturedHttpEntity.getBody());
}

From source file:org.messic.server.facade.controllers.rest.AlbumController.java

@ApiMethod(path = "/services/albums/{albumCode}?fileName=xxxxx", verb = ApiVerb.PUT, description = "Upload a resource for an album. This resources are stored at the temporal folder, waiting until save Album process. The client must post the binary content of the resource.", produces = {
        MediaType.APPLICATION_JSON_VALUE,
        MediaType.APPLICATION_XML_VALUE }, consumes = { MediaType.APPLICATION_OCTET_STREAM_VALUE })
@ApiErrors(apierrors = { @ApiError(code = UnknownMessicRESTException.VALUE, description = "Unknown error"),
        @ApiError(code = NotAuthorizedMessicRESTException.VALUE, description = "Forbidden access"),
        @ApiError(code = IOMessicRESTException.VALUE, description = "IO internal server error"), })
@RequestMapping(value = "/{albumCode}", method = RequestMethod.PUT)
@ResponseStatus(HttpStatus.OK)//ww  w. jav  a2s  .c  o  m
@ResponseBody
@ApiResponseObject
public HttpEntity<HttpStatus> uploadResource(@ApiBodyObject HttpEntity<byte[]> requestEntity,
        HttpServletResponse response, HttpSession session,
        @ApiParam(name = "albumCode", description = "code for the album owner of the resource.. This code is the reference for others resources that could be uploaded, and so on", paramType = ApiParamType.PATH, required = true) @PathVariable String albumCode,
        @ApiParam(name = "fileName", description = "file name of the resource", paramType = ApiParamType.QUERY, required = true) @RequestParam("fileName") String fileName)
        throws IOMessicRESTException, UnknownMessicRESTException, NotAuthorizedMessicRESTException {

    User user = SecurityUtil.getCurrentUser();
    try {
        byte[] payload = requestEntity.getBody();
        albumAPI.uploadResource(user, albumCode, HtmlUtils.htmlUnescape(fileName), payload);
    } catch (IOException ioe) {
        log.error("failed!", ioe);
        throw new IOMessicRESTException(ioe);
    } catch (Exception e) {
        log.error("failed!", e);
        throw new UnknownMessicRESTException(e);
    }

    return new HttpEntity<HttpStatus>(HttpStatus.OK);
}

From source file:com.formkiq.core.api.FolderFilesController.java

/**
 * Save File to Folder./*from   w w w  .jav a  2  s .c  om*/
 * @param request {@link HttpServletRequest}
 * @param response {@link HttpServletResponse}
 * @param folder {@link String}
 * @param entity HttpEntity&lt;byte[]&gt;
 * @param lastSha1hash {@link String}
 * @return {@link ApiMessageResponse}
 * @throws IOException IOException
 */
@Transactional
@RequestMapping(value = API_FOLDER_FILE + "/{folder}", method = POST)
public ApiMessageResponse saveFolderFile(final HttpServletRequest request, final HttpServletResponse response,
        @PathVariable(name = "folder", required = true) final String folder,
        @RequestParam(value = "sha1hash", required = false) final String lastSha1hash,
        final HttpEntity<byte[]> entity) throws IOException {

    getApiVersion(request);

    FormSaveResult result = null;
    ApiMessageResponse msg = new ApiMessageResponse("Save successful");

    Enumeration<String> e = request.getHeaders("accept");
    boolean isAdmin = this.securityService.isAdmin()
            && this.securityService.hasAcceptHeader(e, ACCEPT_HEADER_ADMIN);

    if (request instanceof MultipartHttpServletRequest) {

        MultipartHttpServletRequest rr = (MultipartHttpServletRequest) request;

        Iterator<String> itr = rr.getFileNames();
        MultipartFile mpf = rr.getFile(itr.next());
        result = this.folderService.saveForm(folder, mpf.getBytes(), lastSha1hash, isAdmin);
        checkForValidationErrors(result.getErrors());
        response.addHeader("sha1hash", result.getSha1hash());

    } else {

        result = this.folderService.saveForm(folder, entity.getBody(), lastSha1hash, isAdmin);
        checkForValidationErrors(result.getErrors());
        response.addHeader("sha1hash", result.getSha1hash());
    }

    if (FolderFormStatus.IN_PROCESS.equals(result.getStatus())) {
        msg = new ApiMessageResponse("Saved as 'In Process'");
    }

    return msg;
}