Example usage for org.springframework.web.client RestTemplate exchange

List of usage examples for org.springframework.web.client RestTemplate exchange

Introduction

In this page you can find the example usage for org.springframework.web.client RestTemplate exchange.

Prototype

@Override
    public <T> ResponseEntity<T> exchange(URI url, HttpMethod method, @Nullable HttpEntity<?> requestEntity,
            ParameterizedTypeReference<T> responseType) throws RestClientException 

Source Link

Usage

From source file:org.starfishrespect.myconsumption.android.tasks.StatValuesUpdater.java

public void refreshDB() {

    AsyncTask<Void, List, Void> task = new AsyncTask<Void, List, Void>() {
        @Override//from   w ww  .  ja  va  2  s.c o  m
        protected Void doInBackground(Void... params) {
            DatabaseHelper db = SingleInstance.getDatabaseHelper();
            RestTemplate template = new RestTemplate();
            HttpHeaders httpHeaders = CryptoUtils.createHeadersCurrentUser();
            ResponseEntity<StatDTO[]> responseEnt;
            template.getMessageConverters().add(new MappingJacksonHttpMessageConverter());

            try {
                for (SensorData sensor : db.getSensorDao().queryForAll()) {
                    // Stats
                    String url = String.format(SingleInstance.getServerUrl() + "stats/sensor/%s",
                            sensor.getSensorId());

                    responseEnt = template.exchange(url, HttpMethod.GET, new HttpEntity<>(httpHeaders),
                            StatDTO[].class);
                    StatDTO[] statsArray = responseEnt.getBody();
                    List<StatDTO> stats = new ArrayList<>(Arrays.asList(statsArray));

                    ObjectMapper mapper = new ObjectMapper();

                    try {
                        String json = mapper.writeValueAsString(stats);
                        String key = "stats_" + sensor.getSensorId();

                        int id = db.getIdForKey(key);
                        KeyValueData valueData = new KeyValueData(key, json);
                        valueData.setId(id);

                        LOGD(TAG, "writing stat in local db: " + json);
                        db.getKeyValueDao().createOrUpdate(valueData);

                    } catch (IOException e) {
                        LOGD(TAG, "Cannot create stats " + stats.toString(), e);
                    }

                }
            } catch (SQLException e) {
                LOGD(TAG, "Cannot create stats ", e);
            } catch (ResourceAccessException | HttpClientErrorException e) {
                LOGE(TAG, "Cannot access server ", e);
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            if (statUpdateFinishedCallback != null) {
                statUpdateFinishedCallback.onStatUpdateFinished();
            }
        }
    };

    task.execute();
}

From source file:com.auditbucket.client.AbRestClient.java

public void ensureFortress(String fortressName) {
    if (fortressName == null)
        return;//from w  w w .j  a  va  2 s .c  om

    RestTemplate restTemplate = new RestTemplate();
    restTemplate.getMessageConverters().add(new StringHttpMessageConverter());

    HttpHeaders httpHeaders = getHeaders(userName, password);
    HttpEntity<FortressInputBean> request = new HttpEntity<>(new FortressInputBean(fortressName, false),
            httpHeaders);
    try {
        restTemplate.exchange(FORTRESS, HttpMethod.POST, request, FortressResultBean.class);
        if (defaultFortress != null && !defaultFortress.equals(fortressName)) {
            request = new HttpEntity<>(new FortressInputBean(defaultFortress, false), httpHeaders);
            restTemplate.exchange(FORTRESS, HttpMethod.POST, request, FortressResultBean.class);
        }
    } catch (HttpClientErrorException e) {
        // ToDo: Rest error handling pretty useless. need to know why it's failing
        logger.error("AB Client Audit error {}", getErrorMessage(e));
    } catch (HttpServerErrorException e) {
        logger.error("AB Server Audit error {}", getErrorMessage(e));

    }
}

From source file:com.fredhopper.core.connector.index.upload.impl.RestPublishingStrategy.java

@Override
public URI triggerDataLoad(final InstanceConfig config, final String dataId) throws ResponseStatusException {
    Preconditions.checkArgument(config != null);
    Preconditions.checkArgument(StringUtils.isNotBlank(dataId));

    final RestTemplate restTemplate = restTemplateProvider.createTemplate(config.getHost(), config.getPort(),
            config.getUsername(), config.getPassword());

    final URI url = createUri(config.getScheme(), config.getHost(), config.getPort(), config.getServername(),
            TRIGGER_PATH, Collections.emptyList());

    final HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.TEXT_PLAIN);
    final HttpEntity<String> httpEntity = new HttpEntity<>(dataId, headers);

    final ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.PUT, httpEntity,
            String.class);
    final HttpStatus status = response.getStatusCode();
    if (status.equals(HttpStatus.CREATED)) {
        return response.getHeaders().getLocation();
    } else {//  www.jav a2  s.  c  o  m
        throw new ResponseStatusException(
                "HttpStatus " + status.toString() + " response received. Load trigger creation failed.");
    }
}

From source file:com.iata.ndc.trial.controllers.DefaultController.java

@RequestMapping(value = "/ba", method = RequestMethod.GET)
public String getCal() {

    RestTemplate restTemplate = new RestTemplate();
    List<HttpMessageConverter<?>> converters = new ArrayList<>();
    MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
    converter.getObjectMapper().configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
    converters.add(converter);/*from  w ww.j  ava2  s.  co m*/
    restTemplate.setMessageConverters(converters);

    HttpHeaders headers = new HttpHeaders();
    headers.add("client-key", "zmd9apqgg2jwekf8zgqg5ybf");
    headers.setContentType(MediaType.APPLICATION_JSON);

    ResponseEntity<BALocationsResponseWrapper> baLocationsResponse = restTemplate.exchange(
            "https://api.ba.com/rest-v1/v1/balocations", HttpMethod.GET, new HttpEntity<Object>(headers),
            BALocationsResponseWrapper.class);
    System.out.println(baLocationsResponse.getBody().getGetBALocationsResponse().getCountry().size());
    return "index";
}

From source file:com.iata.ndc.trial.controllers.DefaultController.java

@RequestMapping(value = "/sita", method = RequestMethod.GET)
public String getSita() {

    RestTemplate restTemplate = new RestTemplate();
    List<HttpMessageConverter<?>> converters = new ArrayList<>();
    MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
    converter.getObjectMapper().configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
    converters.add(converter);// www  . ja  va  2 s  .  c o m
    restTemplate.setMessageConverters(converters);

    HttpHeaders headers = new HttpHeaders();
    headers.add("client-key", "zmd9apqgg2jwekf8zgqg5ybf");
    headers.setContentType(MediaType.APPLICATION_JSON);

    ResponseEntity<BALocationsResponseWrapper> baLocationsResponse = restTemplate.exchange(
            "https://api.ba.com/rest-v1/v1/balocations", HttpMethod.GET, new HttpEntity<Object>(headers),
            BALocationsResponseWrapper.class);
    System.out.println(baLocationsResponse.getBody().getGetBALocationsResponse().getCountry().size());
    return "index";
}

From source file:org.avidj.zuul.client.ZuulRestClient.java

@Override
public boolean lock(String sessionId, List<String> path, LockType type, LockScope scope) {
    RestTemplate restTemplate = new RestTemplate();

    HttpHeaders headers = new HttpHeaders();
    headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
    HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);

    Map<String, String> parameters = new HashMap<>();
    parameters.put("id", sessionId); // set the session id
    UriComponentsBuilder uriBuilder = UriComponentsBuilder.fromHttpUrl(serviceUrl + lockPath(path))
            .queryParam("t", type(type)).queryParam("s", scope(scope));

    ResponseEntity<String> result = restTemplate.exchange(uriBuilder.build().encode().toUri(), HttpMethod.PUT,
            entity, String.class);

    LOG.info(result.toString());//from   w w w  . j  a v  a 2s .c o m
    HttpStatus code = result.getStatusCode();
    return code.equals(HttpStatus.CREATED);
}

From source file:es.onebox.rest.utils.service.QueryService.java

/**
 * Main method to perform request to Onebox REST API.
 *
 * @param authenticationForm/*w  ww.  ja  v a2  s . c om*/
 * @param queryForm
 * @return Response form request
 */
public ResponseDTO query(AuthenticationForm authenticationForm, QueryForm queryForm) {

    ResponseDTO responseDTO = new ResponseDTO();
    Exception ex = null;

    try {

        URL url = new URL(queryForm.getUrl());
        URI uri = url.toURI();

        Date date = new Date();
        long timestamp = date.getTime();

        HttpMethod httpMethod;

        if (queryForm.getMethod().equalsIgnoreCase("post")) {
            httpMethod = HttpMethod.POST;
        } else {
            httpMethod = HttpMethod.GET;
        }

        // Getting String to encode with HMAC-SHA1
        // First step in the signing algorithm
        String stringToSign = getStringToSign(uri, httpMethod.name(), timestamp, queryForm);

        logger.info("String to sign: " + stringToSign);

        // Encoding String
        // This is the actual authorization string that will be sent in the request
        String authorization = generate_HMAC_SHA1_Signature(stringToSign,
                authenticationForm.getPassword() + authenticationForm.getLicense());

        logger.info("Authorization string: " + authorization);

        // Adding to return object
        responseDTO.setDate(date);
        responseDTO.setStringToSign(stringToSign);
        responseDTO.setAuthorization(authorization);

        // Setting Headers
        HttpHeaders headers = new HttpHeaders();

        if (queryForm.getAccept().equals("json")) {
            headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
        } else {
            headers.setAccept(Arrays.asList(MediaType.TEXT_XML));
        }

        headers.add("Authorization", authorization);
        headers.add("OB_DATE", "" + timestamp);
        headers.add("OB_Terminal", authenticationForm.getTerminal());
        headers.add("OB_User", authenticationForm.getUser());
        headers.add("OB_Channel", authenticationForm.getChannelId());
        headers.add("OB_POS", authenticationForm.getPos());

        // Adding Headers to return object
        responseDTO.setHttpHeaders(headers);

        HttpEntity<String> entity;

        if (httpMethod == HttpMethod.POST) {
            // Adding post parameters to POST body
            String parameterStringBody = queryForm.getParametersAsString();
            entity = new HttpEntity<String>(parameterStringBody, headers);
            logger.info("POST Body: " + parameterStringBody);
        } else {
            entity = new HttpEntity<String>(headers);
        }

        // Creating rest client
        RestTemplate restTemplate = new RestTemplate();

        // Converting to UTF-8. OB Rest replies in windows charset.
        restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8")));

        // Performing request to Onebox REST API
        ResponseEntity<String> result = restTemplate.exchange(uri, httpMethod, entity, String.class);

        // TODO this functionlity is to map response to objetcs. It is not finished. Only placed here for POC
        /*
        if (queryForm.getMapResponse().booleanValue()) {
        ResponseEntity<EventSearchBean> event = restTemplate.exchange(uri, httpMethod, entity, EventSearchBean.class);
        }
        */

        // Adding response to return object
        responseDTO.setResponseEntity(result);

        logger.debug(result.toString());

    } catch (HttpClientErrorException e) {
        logger.error(e.getMessage());
        ex = e;
        e.printStackTrace();
        responseDTO.setError(e);
        responseDTO.setAdditionalErrorMessage(AppUtils.getMessage("error.request.parameters"));
    } catch (MalformedURLException e) {
        logger.error(e.getMessage());
        ex = e;
        e.printStackTrace();
        responseDTO.setError(e);
        responseDTO.setAdditionalErrorMessage(AppUtils.getMessage("error.request.parameters"));
    } catch (SignatureException e) {
        logger.error(e.getMessage());
        ex = e;
        e.printStackTrace();
        responseDTO.setError(e);
        responseDTO.setAdditionalErrorMessage(AppUtils.getMessage("error.request.parameters"));
    } catch (URISyntaxException e) {
        logger.error(e.getMessage());
        ex = e;
        e.printStackTrace();
        responseDTO.setError(e);
        responseDTO.setAdditionalErrorMessage(AppUtils.getMessage("error.request.parameters"));
    } catch (Exception e) {
        logger.error(e.getMessage());
        ex = e;
        e.printStackTrace();
        responseDTO.setError(e);
        responseDTO.setAdditionalErrorMessage(AppUtils.getMessage("error.request.authentication"));
    } finally {
        if (ex != null && ex instanceof HttpServerErrorException) {
            HttpServerErrorException e2 = (HttpServerErrorException) ex;
            ResponseEntity<String> responseEntity = new ResponseEntity<String>(e2.getResponseHeaders(),
                    HttpStatus.INTERNAL_SERVER_ERROR);

            List<String> ob_error_codes = e2.getResponseHeaders().get("OB_Error_Code");

            String ob_error_code;
            ResponseErrorCodesEnum ob_error = null;

            if (ob_error_codes != null && ob_error_codes.size() == 1) {
                ob_error_code = ob_error_codes.get(0);
                try {
                    ob_error = ResponseErrorCodesEnum.valueOf("ERROR_" + ob_error_code);
                } catch (Exception e) {
                    logger.error("API ERROR CODE NOT DEFINED: " + "ERROR_" + ob_error_code);
                }
                responseDTO.setObResponseErrorCode(ob_error);
            }

            responseDTO.setResponseEntity(responseEntity);
        }
    }

    return responseDTO;
}

From source file:com.auditbucket.client.AbRestClient.java

public int flushXReferences(List<CrossReferenceInputBean> referenceInputBeans) {
    logger.info("Processing [{}] cross references - simulate [{}]", referenceInputBeans.size(), simulateOnly);
    if (simulateOnly)
        return 0;
    RestTemplate restTemplate = new RestTemplate();
    restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
    HttpHeaders httpHeaders = getHeaders(userName, password);
    HttpEntity<List<CrossReferenceInputBean>> requestEntity = new HttpEntity<>(referenceInputBeans,
            httpHeaders);/*w  w w.j a  v  a2s. c om*/
    try {
        ResponseEntity<ArrayList> response = restTemplate.exchange(CROSS_REFERENCES, HttpMethod.POST,
                requestEntity, ArrayList.class);
        logServerMessages(response);
        return referenceInputBeans.size();
    } catch (HttpClientErrorException e) {
        // ToDo: Rest error handling pretty useless. need to know why it's failing
        logger.error("AB Client Audit error {}", getErrorMessage(e));
        return 0;
    } catch (HttpServerErrorException e) {
        logger.error("AB Server Audit error {}", getErrorMessage(e));
        return 0;

    }

}

From source file:com.nautestech.VERDE.controller.HomeController.java

@RequestMapping(value = "/verdeUser")
public String Rest(Model model) throws URISyntaxException {

    RestTemplate restTemplate = new RestTemplate();

    String plainCreds = "mcadmin1:pass_1234";
    byte[] plainCredsBytes = plainCreds.getBytes();
    byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes);
    String base64Creds = new String(base64CredsBytes);

    HttpHeaders headers = new HttpHeaders();
    headers.add("Authorization", "Basic " + base64Creds);
    //      headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));

    HttpEntity<String> request = new HttpEntity<String>(headers);
    URI url = new URI("http://netseason.iptime.org/mc/rest/verdeUser");
    ResponseEntity<VerdeUser> response = restTemplate.exchange(url, HttpMethod.GET, request, VerdeUser.class);

    logger.info(response.getHeaders().toString());

    List<XmlData> list = new ArrayList<XmlData>();
    list = response.getBody().getVerdeUser();
    String result = "";
    for (int i = 0; i < list.size(); i++) {
        XmlData data = (XmlData) list.get(i);
        result += data.getName() + "|" + data.getValue() + "</br>\n";
    }//from  w  w  w.  jav a  2  s .c o m

    logger.info(result);

    model.addAttribute("result", result);

    return "rest";
}

From source file:com.nautestech.VERDE.controller.HomeController.java

/**
 * Simply selects the home view to render by returning its name.
 *//*from  ww  w. j a v  a 2 s  . co  m*/
//   @RequestMapping(value = "/", method = RequestMethod.GET)
//   public String home(Locale locale, Model model) {
//      logger.info("Welcome home! The client locale is {}.", locale);
//      
//      Date date = new Date();
//      DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
//      
//      String formattedDate = dateFormat.format(date);
//      
//      model.addAttribute("serverTime", formattedDate );
//      
//      return "home1";
//   }

@RequestMapping(value = "/verdeLicense")
public String RestVerdeLicense(Model model) throws URISyntaxException {

    RestTemplate restTemplate = new RestTemplate();

    String plainCreds = "mcadmin1:pass_1234";
    byte[] plainCredsBytes = plainCreds.getBytes();
    byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes);
    String base64Creds = new String(base64CredsBytes);

    HttpHeaders headers = new HttpHeaders();
    headers.add("Authorization", "Basic " + base64Creds);
    //      headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));

    HttpEntity<String> request = new HttpEntity<String>(headers);
    URI url = new URI("http://netseason.iptime.org/mc/rest/verdeLicense");
    ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, request, String.class);

    logger.info(response.getHeaders().toString());

    model.addAttribute("result", response.getBody());

    return "rest";
}