内置http执行器增加自定义响应结果判断
This commit is contained in:
parent
39e44bf2ae
commit
fbf6998762
@ -73,7 +73,7 @@ public class SnailJobProperties {
|
|||||||
/**
|
/**
|
||||||
* 内置http执行器自定义响应结果配置
|
* 内置http执行器自定义响应结果配置
|
||||||
*/
|
*/
|
||||||
private HttpResponse httpResponse = new HttpResponse();
|
private HttpResponse httpResponse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 重试模块配置
|
* 重试模块配置
|
||||||
@ -119,17 +119,17 @@ public class SnailJobProperties {
|
|||||||
/**
|
/**
|
||||||
* 内置http执行器响应成功状态码,默认值200
|
* 内置http执行器响应成功状态码,默认值200
|
||||||
*/
|
*/
|
||||||
private int code;
|
private int code = 200;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 内置http执行器状态码字段名称,默认值code,只针对responseType等于json生效
|
* 内置http执行器状态码字段名称,默认值code,只针对responseType等于json生效
|
||||||
*/
|
*/
|
||||||
private String field;
|
private String field = "code";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 内置http执行器响应类型,可选值json或者text,默认值json
|
* 内置http执行器响应类型,可选值json或者text,默认值json
|
||||||
*/
|
*/
|
||||||
private String responseType;
|
private String responseType = "json";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
@ -30,6 +30,8 @@ public abstract class AbstractHttpExecutor {
|
|||||||
private static final String HTTP_PREFIX = "http://";
|
private static final String HTTP_PREFIX = "http://";
|
||||||
private static final int HTTP_SUCCESS_CODE = 200;
|
private static final int HTTP_SUCCESS_CODE = 200;
|
||||||
private static final Pattern pattern = Pattern.compile("[\\u4e00-\\u9fa5]");
|
private static final Pattern pattern = Pattern.compile("[\\u4e00-\\u9fa5]");
|
||||||
|
private static final String JSON_RESPONSE_TYPE = "json";
|
||||||
|
private static final String TEXT_RESPONSE_TYPE = "text";
|
||||||
|
|
||||||
public ExecuteResult process(HttpParams httpParams) {
|
public ExecuteResult process(HttpParams httpParams) {
|
||||||
if (httpParams == null) {
|
if (httpParams == null) {
|
||||||
@ -88,13 +90,13 @@ public abstract class AbstractHttpExecutor {
|
|||||||
}
|
}
|
||||||
// 如果配置了httpResponse,则根据响应类型进行进一步验证
|
// 如果配置了httpResponse,则根据响应类型进行进一步验证
|
||||||
if (Objects.nonNull(httpResponse)) {
|
if (Objects.nonNull(httpResponse)) {
|
||||||
int code = Optional.of(httpResponse.getCode()).orElse(HTTP_SUCCESS_CODE);
|
int code = httpResponse.getCode();
|
||||||
String field = Optional.of(httpResponse.getField()).orElse("code");
|
String field = httpResponse.getField();
|
||||||
String responseType = Optional.of(httpResponse.getResponseType()).orElse("json");
|
String responseType = httpResponse.getResponseType();
|
||||||
// 根据不同的响应类型进行验证
|
// 根据不同的响应类型进行验证
|
||||||
if ("json".equalsIgnoreCase(responseType)) {
|
if (JSON_RESPONSE_TYPE.equalsIgnoreCase(responseType)) {
|
||||||
return validateJsonResponse(body, code, field, httpRequest);
|
return validateJsonResponse(body, code, field, httpRequest);
|
||||||
} else if ("text".equalsIgnoreCase(responseType)) {
|
} else if (TEXT_RESPONSE_TYPE.equalsIgnoreCase(responseType)) {
|
||||||
return validateTextResponse(body, code, httpRequest);
|
return validateTextResponse(body, code, httpRequest);
|
||||||
} else {
|
} else {
|
||||||
return ExecuteResult.failure("the responseType is not json or text");
|
return ExecuteResult.failure("the responseType is not json or text");
|
||||||
|
Loading…
Reference in New Issue
Block a user