Skip to content

Commit

Permalink
修复RequestBody不支持List的问题、修复断点调试时不走后置拦截器的问题
Browse files Browse the repository at this point in the history
  • Loading branch information
javamxd committed Jan 31, 2021
1 parent a93a137 commit 82943e0
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions src/main/java/org/ssssssss/magicapi/controller/RequestHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -88,14 +88,14 @@ public Object invoke(HttpServletRequest request, HttpServletResponse response,
}
if (requestedFromTest) {
if (isRequestedFromContinue(request)) {
return invokeContinueRequest(request, response);
return invokeContinueRequest(info, request, response);
}
return invokeTestRequest(info, (MagicScriptDebugContext) context, request, response);
}
return invokeRequest(info, context, request, response);
}

private Object invokeContinueRequest(HttpServletRequest request, HttpServletResponse response) throws IOException {
private Object invokeContinueRequest(ApiInfo info, HttpServletRequest request, HttpServletResponse response) throws Exception {
String sessionId = getRequestedSessionId(request);
MagicScriptDebugContext context = MagicScriptDebugContext.getDebugContext(sessionId);
if (context == null) {
Expand All @@ -115,6 +115,14 @@ private Object invokeContinueRequest(HttpServletRequest request, HttpServletResp
} else if (context.isException()) {
return resolveThrowable((Throwable) context.getReturnValue());
}
Object value = context.getReturnValue();
// 执行后置拦截器
if ((value = doPostHandle(info, context, value, request, response)) != null) {
// 修正前端显示,当拦截器返回时,原样输出显示
response.setHeader(HEADER_RESPONSE_WITH_MAGIC_API, "false");
// 后置拦截器不包裹
return value;
}
return convertResult(context.getReturnValue(), response);
}

Expand Down Expand Up @@ -287,7 +295,7 @@ private List<Integer> getRequestedBreakpoints(HttpServletRequest request) {
private Object readRequestBody(HttpServletRequest request) throws IOException {
if (configuration.getHttpMessageConverters() != null && request.getContentType() != null) {
MediaType mediaType = MediaType.valueOf(request.getContentType());
Class clazz = Map.class;
Class clazz = Object.class;
try {
for (HttpMessageConverter<?> converter : configuration.getHttpMessageConverters()) {
if (converter.canRead(clazz, mediaType)) {
Expand Down

0 comments on commit 82943e0

Please sign in to comment.