diff --git a/snail-job-client/snail-job-client-common/src/main/java/com/aizuda/snailjob/client/common/config/SnailJobProperties.java b/snail-job-client/snail-job-client-common/src/main/java/com/aizuda/snailjob/client/common/config/SnailJobProperties.java index ca0492155..565cad932 100644 --- a/snail-job-client/snail-job-client-common/src/main/java/com/aizuda/snailjob/client/common/config/SnailJobProperties.java +++ b/snail-job-client/snail-job-client-common/src/main/java/com/aizuda/snailjob/client/common/config/SnailJobProperties.java @@ -119,7 +119,7 @@ public class SnailJobProperties { /** * 内置http执行器响应成功状态码,默认值200 */ - private int code = 200; + private Integer code = 200; /** * 内置http执行器状态码字段名称,默认值code,只针对responseType等于json生效 diff --git a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/builtin/AbstractHttpExecutor.java b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/builtin/AbstractHttpExecutor.java index 63f00e29d..46a734020 100644 --- a/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/builtin/AbstractHttpExecutor.java +++ b/snail-job-client/snail-job-client-job-core/src/main/java/com/aizuda/snailjob/client/job/core/executor/builtin/AbstractHttpExecutor.java @@ -30,9 +30,10 @@ public abstract class AbstractHttpExecutor { private static final String HTTP_PREFIX = "http://"; private static final int HTTP_SUCCESS_CODE = 200; private static final Pattern pattern = Pattern.compile("[\\u4e00-\\u9fa5]"); + private static final int RESPONSE_SUCCESS_CODE = 200; + private static final String RESPONSE_CODE_FIELD = "code"; private static final String JSON_RESPONSE_TYPE = "json"; private static final String TEXT_RESPONSE_TYPE = "text"; - public ExecuteResult process(HttpParams httpParams) { if (httpParams == null) { String message = "HttpParams is null. Verify jobParam configuration."; @@ -90,9 +91,14 @@ public abstract class AbstractHttpExecutor { } // 如果配置了httpResponse,则根据响应类型进行进一步验证 if (Objects.nonNull(httpResponse)) { - int code = httpResponse.getCode(); - String field = httpResponse.getField(); - String responseType = httpResponse.getResponseType(); + // 防止显示声明字段但是未配置值 + int code = Optional.ofNullable(httpResponse.getCode()).orElse(RESPONSE_SUCCESS_CODE); + String field = Optional.ofNullable(httpResponse.getField()) + .filter(StringUtils::hasLength) + .orElse(RESPONSE_CODE_FIELD); + String responseType = Optional.ofNullable(httpResponse.getField()) + .filter(StringUtils::hasLength) + .orElse(JSON_RESPONSE_TYPE); // 根据不同的响应类型进行验证 if (JSON_RESPONSE_TYPE.equalsIgnoreCase(responseType)) { return validateJsonResponse(body, code, field, httpRequest);