/**
|
* Alipay.com Inc.
|
* Copyright (c) 2004-2020 All Rights Reserved.
|
*/
|
package com.alipay.easysdk.kernel.util;
|
|
import com.aliyun.tea.TeaModel;
|
import com.google.common.base.Strings;
|
|
import java.lang.reflect.Field;
|
|
/**
|
* 响应检查工具类
|
*
|
* @author zhongyu
|
* @version : ResponseChecker.java, v 0.1 2020年06月02日 10:42 上午 zhongyu Exp $
|
*/
|
public class ResponseChecker {
|
|
public static final String SUB_CODE_FIELD_NAME = "subCode";
|
|
/**
|
* 判断一个请求返回的响应是否成功
|
*
|
* @param response 响应对象
|
* @return true:成功;false:失败
|
*/
|
public static boolean success(TeaModel response) {
|
try {
|
Field subCodeField = response.getClass().getField(SUB_CODE_FIELD_NAME);
|
subCodeField.setAccessible(true);
|
String subCode = (String) subCodeField.get(response);
|
return Strings.isNullOrEmpty(subCode);
|
} catch (NoSuchFieldException | IllegalAccessException e) {
|
//没有subCode字段的响应对象,通常是那些无需跟网关远程通信的API,只要本地执行完成都视为成功
|
return true;
|
}
|
}
|
}
|