List of usage examples for org.springframework.web.client ResponseExtractor ResponseExtractor
ResponseExtractor
From source file:com.apress.prospringintegration.customadapters.inbound.pollerdriven.StockPollingMessageSource.java
protected Stock getStockInformationFor(final String symbol) { String url = String.format(this.stockServiceUrl, symbol); Stock stock = restTemplate.execute(url, HttpMethod.GET, null, new ResponseExtractor<Stock>() { @Override//w ww . j a v a2s .co m public Stock extractData(ClientHttpResponse clientHttpResponse) throws IOException { String fragPattern = String.format(jsonFragmentTemplate, symbol, symbol); String bodyAsText = IOUtils.toString(clientHttpResponse.getBody()); int indexOfMatch = bodyAsText.indexOf(fragPattern); if (indexOfMatch != -1) { String sectionContainingPrice = bodyAsText.substring(indexOfMatch); Matcher matcher = symbolSize.matcher(sectionContainingPrice); StringBuilder stringBuilder = new StringBuilder(); while (matcher.find()) { stringBuilder.append(matcher.group(1)).append(".").append(matcher.group(2)); } String response = stringBuilder.toString(); Float fl = Float.parseFloat(response); return new Stock(symbol, fl); } return null; } }); return stock; }
From source file:de.hybris.platform.marketplaceintegrationbackoffice.utils.MarketplaceintegrationbackofficeHttpClientImpl.java
@Override public boolean redirectRequest(final String requestUrl) throws IOException { final boolean result = true; final RestTemplate restTemplate = new RestTemplate(); final java.net.URI uri = java.net.URI.create(requestUrl); final java.awt.Desktop dp = java.awt.Desktop.getDesktop(); if (dp.isSupported(java.awt.Desktop.Action.BROWSE)) { dp.browse(uri);// www . ja v a2 s . co m } restTemplate.execute(requestUrl, HttpMethod.GET, new RequestCallback() { @Override public void doWithRequest(final ClientHttpRequest request) throws IOException { // empty block should be documented } }, new ResponseExtractor<Object>() { @Override public Object extractData(final ClientHttpResponse response) throws IOException { final HttpStatus statusCode = response.getStatusCode(); LOG.debug("Response status: " + statusCode.toString()); return response.getStatusCode(); } }); return result; }
From source file:com.mycompany.trader.TradingConnect.java
private static void loginAndSaveJsessionIdCookie(final String user, final String password, final HttpHeaders headersToUpdate) { String url = "http://localhost:" + port + "/blueprint-trading-services/login.html"; new RestTemplate().execute(url, HttpMethod.POST, new RequestCallback() { @Override//from w ww . java2 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.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;/* w w w . jav a 2 s . 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: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//from w w w. j a v a 2 s. c o 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:io.bosh.client.jobs.SpringJobs.java
private final Observable<File> getGzip(Consumer<UriComponentsBuilder> builderCallback) { // For responses that have a Content-Type of application/x-gzip, we need to // decompress them. The RestTemplate and HttpClient don't handle this for // us/*from w ww . ja va 2s .c om*/ return createObservable(() -> { UriComponentsBuilder builder = UriComponentsBuilder.fromUri(this.root); builderCallback.accept(builder); URI uri = builder.build().toUri(); return this.restOperations.execute(uri, HttpMethod.GET, null, new ResponseExtractor<File>() { @Override public File extractData(ClientHttpResponse response) throws IOException { return decompress(response.getBody()); } }); }); }
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//from w w w. ja v a 2 s . com 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()); }
From source file:com.netflix.genie.web.services.impl.HttpFileTransferImpl.java
/** * {@inheritDoc}//from w ww. j av a 2 s .c o m */ @Override public void getFile(@NotBlank(message = "Source file path cannot be empty.") final String srcRemotePath, @NotBlank(message = "Destination local path cannot be empty") final String dstLocalPath) throws GenieException { final long start = System.nanoTime(); log.debug("Called with src path {} and destination path {}", srcRemotePath, dstLocalPath); try { final File outputFile = new File(dstLocalPath); if (!this.isValid(srcRemotePath)) { throw new GenieServerException("Unable to download " + srcRemotePath + " not a valid URL"); } this.restTemplate.execute(srcRemotePath, HttpMethod.GET, requestEntity -> requestEntity.getHeaders().setAccept(Lists.newArrayList(MediaType.ALL)), new ResponseExtractor<Void>() { @Override public Void extractData(final ClientHttpResponse response) throws IOException { // Documentation I could find pointed to the HttpEntity reading the bytes off // the stream so this should resolve memory problems if the file returned is large FileUtils.copyInputStreamToFile(response.getBody(), outputFile); return null; } }); } finally { this.downloadTimer.record(System.nanoTime() - start, TimeUnit.NANOSECONDS); } }
From source file:com.appglu.impl.StorageTemplate.java
protected boolean streamStorageFile(StorageFile file, final InputStreamCallback inputStreamCallback, RequestCallback requestCallback) throws AppGluRestClientException { URI uri = this.getStorageFileURI(file); try {//from w w w . j a va 2s . c o m ResponseExtractor<Boolean> responseExtractor = new ResponseExtractor<Boolean>() { public Boolean extractData(ClientHttpResponse response) throws IOException { if (response.getStatusCode() == HttpStatus.NOT_MODIFIED) { return false; } Md5DigestCalculatingInputStream inputStream = new Md5DigestCalculatingInputStream( response.getBody()); inputStreamCallback.doWithInputStream(inputStream); String eTagHeader = response.getHeaders().getETag(); if (StringUtils.isNotEmpty(eTagHeader)) { String eTag = StringUtils.removeDoubleQuotes(eTagHeader); byte[] contentMd5 = inputStream.getMd5Digest(); if (!HashUtils.md5MatchesWithETag(contentMd5, eTag)) { throw new AppGluRestClientException("Unable to verify integrity of downloaded file. " + "Client calculated content hash didn't match hash calculated by server"); } } return true; } }; return this.downloadRestOperations.execute(uri, HttpMethod.GET, requestCallback, responseExtractor); } catch (RestClientException e) { throw new AppGluRestClientException(e.getMessage(), e); } }
From source file:sparklr.common.AbstractAuthorizationCodeProviderTests.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/*from w w w . j ava 2 s. c o m*/ 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(accessTokenProvider); }