in src/main/java/com/aliyun/mns/common/http/ExceptionResultParser.java [40:70]
public Exception parse(ResponseMessage response) throws ResultParseException {
assert response != null;
if (response.isSuccessful()) {
return null;
}
Exception result = null;
String content = null;
try {
content = IOUtils.readStreamAsString(response.getContent(), "UTF-8");
} catch (IOException e) {
return new ServiceException(e.getMessage(), userRequestId, e);
}
try {
// 使用jaxb common parser
JAXBResultParser d = new JAXBResultParser(ErrorMessage.class);
Object obj = d.parse(content);
if (obj instanceof ErrorMessage) {
ErrorMessage err = (ErrorMessage) obj;
result = new ServiceException(err.Message, null, err.Code, err.RequestId, err.HostId);
}
} catch (Exception e) {
// now treat it as unknown formats
String message = e.getMessage() + "\n" + content;
result = new ClientException(message, null, e.getCause());
}
return result;
}