List of usage examples for org.springframework.http HttpEntity getBody
@Nullable
public T getBody()
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<byte[]> * @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; }