/** * 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; } } }