Как я могу сделать вызов пут отдыха вместе с POJO используя RestTemplate - PullRequest
0 голосов
/ 28 декабря 2018

Как я могу сделать запрос PUT для службы отдыха, используя RestTemplate, чтобы я также получил ответ.

Служба отдыха, которую я должен вызвать:

@RequestMapping(value = /forgotpassword, method = RequestMethod.PUT, produces = "application/json")
public SuccessResponse resetUserPassword(@RequestBody ResetPasswordDTO resetPasswordDTO) throws GenericException {
    logger.info("--->reset Password");
    return new SuccessResponse(userservice.resetUserPassword(resetPasswordDTO));

}

Мне также нужно отправить одно POJO, у которого есть два свойства String.

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Для PUT используйте RestTemplate.exchange() метод

Пример

 MyJaxbRequestDataObjectrequest = createMyJaxbRequestDataObject();
    Map<String, String> uriArguments= createUriArguments();
    String url = restBaseUrl + "/myputservice/{usertId}?servicekey={servicekey}";

    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_XML);
    HttpEntity<MyJaxbRequestDataObject> entity = new HttpEntity<MyJaxbRequestDataObject>(request, headers);
    ResponseEntity<MyJaxbResponseDataObject> responseWrapper = shogunRestTemplate.exchange(url, HttpMethod.PUT, entity, MyJaxbResponseDataObject.class, uriArguments);
    MyJaxbResponseDataObjectresponse = responseWrapper.getBody();
0 голосов
/ 28 декабря 2018

Метод, помещенный в RestTempalte в (Spring) [https://spring.io/], не имеет возврата, поэтому, если вы хотите получить ответ от сервера, попробуйте использовать метод POST. Я изменяю ваш код следующим образом:

На стороне сервера:

    @RequestMapping(value = "/forgotpassword", method = RequestMethod.POST, produces = "application/json")
    public ResponseEntity<SuccessResponse> resetUserPassword(@RequestBody ResetPasswordDTO resetPasswordDTO) throws Exception {
        log.info("--->reset Password");
        SuccessResponse response = new SuccessResponse();
        response.setName(resetPasswordDTO.getUsername());
        response.setMessage("success");
        return new ResponseEntity<SuccessResponse>(response, HttpStatus.OK);

    }

На стороне клиента вы можете использовать RestTemplate сделать запрос:

ResetPasswordDTO request = new ResetPasswordDTO();
        request.setPasswork("Huawei@123");
        request.setUsername("c00382802");
        ResponseEntity<SuccessResponse> response =template.postForEntity("http://localhost:8080//forgotpassword",request,SuccessResponse.class);
        System.out.println(response.getBody().toString());

Больше информации вы можете получить (Spring) [https://spring.io/]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...