RestTemplate для запроса GET с полезной нагрузкой JSON - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь создать тестовую единицу для метода GET, который требует полезной нагрузки JSON для получения результата на основе предоставленных данных в JSON.

Я пробовал это:

   User user = new User();
   user.setUserId(userId);

   ResponseEntity<User> getResponse = restTemplate.exchange(getRootUrl() + "/getUser", HttpMethod.GET, user, User.class);

    assertNotNull(getResponse);
    assertEquals(getResponse.getStatusCode(), HttpStatus.OK);

, но этовыдает ошибку exchange для user, что объект не подходит.

1 Ответ

0 голосов
/ 27 февраля 2019

документация по методу довольно проста

Выполнить метод HTTP для данного шаблона URI, записать данный объект запроса в запрос и вернуть ответ как ResponseEntity.Переменные шаблона URI раскрываются с использованием заданных переменных URI, если таковые имеются.

Указано: обмен в интерфейсе RestOperations Параметры: url - метод URL - метод HTTP (GET, POST и т. Д.) RequestEntity -сущность (заголовки и / или тело) для записи в запрос может быть нулевой) responseType - тип возвращаемого значения uriVariables - переменные для раскрытия в шаблоне

, вам нужно изменить пользователя на HttpEntity

  HttpHeaders headers = new HttpHeaders();
  headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
  JSONObject parm = new JSONObject();
   parm.put("user", user);
   HttpEntity<JSONObject> entity = new HttpEntity<JSONObject>(parm, headers);
...