我正在尝试为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
上抛出了一个错误,表明该对象不合适。
答案 0 :(得分:1)
对给定的URI模板执行HTTP方法,将给定的请求实体写入请求,然后将响应作为ResponseEntity返回。 使用给定的URI变量(如果有)扩展URI模板变量。
指定者: 接口RestOperations中的交换 参数: url-URL method-HTTP方法(GET,POST等) requestEntity-要写入请求的实体(标头和/或主体)可以为null 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);