我使用 Spring for Android 作为 HTTP 客户端。假设我使用这样的基本身份验证请求:
// Create a new RestTemplate instance
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
try {
// Make the network request
Log.d(TAG, url);
ResponseEntity<Message> response = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<Object>(requestHeaders), Message.class);
System.out.println(response.toString());
} catch (HttpClientErrorException e) {
Log.e(TAG, e.getLocalizedMessage(), e);
e.getLocalizedMessage());
}
}
我的理解是 Message 类应该是我期望从这个请求中返回的 JSON 的映射。但是现在我有一个问题:根据请求的标头,可以返回不同类型的 JSON。如果用户被授权,它将获得:
{
"message": "ok",
"code": 200,
"data:{
... just some more json data ..
}
}
但是当用户没有被自动化时,数据就会丢失(当然)。所以它看起来像这样
{
"message": "You are not authorized to use this service",
"code": 5201
}
但这是两种类型的 JSON 文件,我如何为这两种文件创建正确的映射(消息类)?或者我应该创建不同类型的消息类?
恐怕这个问题有一个非常简单的答案,但我自己找不到。希望有人能解释一下,谢谢!