测试POST和GET请求有些不一样,导致自己花了很久。
在POST请求时,用restTemplate.postForObject,
以为GET时,用restTemplate.getForObject
结果老是在request拦截器那里报错,说拿不到header,后来改用下面的方法通过
GET请求:
@Test
public void testGetOftenTraveller() throws UnsupportedEncodingException {
String voidUrl = url + "/oftenTraveller/get/1";
HttpHeaders requestHeaders = createHttpHeader(latestAuth);
StatRequest req = new StatRequest();
req.setTime(DateUtil.currentDate().toString());
HttpEntity requestEntity = new HttpEntity<>(requestHeaders);
//重点在这
ResponseEntity<?> response = restTemplate.exchange(voidUrl,
HttpMethod.GET,
requestEntity,
Object.class);
//格式化输出
formatHttpInfoPrint(HttpMethod.GET, voidUrl, requestHeaders, "常旅客详情, 成功",null,
jsonMapper.toJson(response));
}
POST请求:
@Test
public void testCreateOftenTraveller() throws UnsupportedEncodingException {
String voidUrl = url + "/oftenTraveller/create";
HttpHeaders requestHeaders = createHttpHeader(latestAuth);
OftenTravellerParam param = new OftenTravellerParam();
param.setOtherIdType("0");
param.setIsCompanyDirectory(false);
param.setOwnerId("8a89b98f54ed44220154ed45c0a41111");
StatRequest req = new StatRequest();
req.setTime(DateUtil.currentDate().toString());
log.debug("create oftenTraveller param:{}",param);
HttpEntity requestEntity = new HttpEntity<>(param,requestHeaders);
//重点在这里
Response<?> response = restTemplate.postForObject(voidUrl, requestEntity, Response.class);
formatHttpInfoPrint(HttpMethod.POST, voidUrl, null, "创建常旅客, 成功", jsonMapper.toJson(param),jsonMapper.toJson(response));
这两个请求都是在先登录,springMVC中有已登录状态才行。并且还要经过每次请求的一个拦截器
RequestValidationInterceptor