This commit is contained in:
2025-03-08 15:46:24 +08:00
parent 50927481d2
commit c2ebbd71e2
35 changed files with 303 additions and 314 deletions

View File

@@ -1,6 +1,7 @@
package com.ycwl.basic.aspectj;
import com.ycwl.basic.annotation.RequestToFile;
import com.ycwl.basic.config.CachedBodyHttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.After;
@@ -12,6 +13,7 @@ import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.util.Enumeration;
@@ -37,27 +39,8 @@ public class HttpSaver {
}
public static void saveRequestToFile(HttpServletRequest request) throws IOException {
StringBuilder rawReq = new StringBuilder();
rawReq.append(request.getMethod()).append(" ").append(request.getRequestURL());
String queryString = request.getQueryString();
if (queryString != null) {
rawReq.append("?").append(queryString);
}
rawReq.append("\r\n");
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String headerName = headerNames.nextElement();
rawReq.append(headerName).append(": ").append(request.getHeader(headerName)).append("\r\n");
}
rawReq.append("\r\n");
// 获取body
try {
rawReq.append(request.getReader().lines().collect(Collectors.joining("\r\n")));
rawReq.append("\r\n");
} catch (IOException ignore) {
}
// 写入文件
File file = new File("./request/"+System.currentTimeMillis()+".http");
// 写入文件
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
@@ -65,7 +48,22 @@ public class HttpSaver {
file.createNewFile();
}
try (java.io.FileWriter writer = new java.io.FileWriter(file, true)) {
writer.write(rawReq.toString());
writer.append(request.getMethod()).append(" ").append(request.getRequestURL());
String queryString = request.getQueryString();
if (queryString != null) {
writer.append("?").append(queryString);
}
writer.append("\r\n");
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String headerName = headerNames.nextElement();
writer.append(headerName).append(": ").append(request.getHeader(headerName)).append("\r\n");
}
writer.append("\r\n");
// 获取body
CachedBodyHttpServletRequest cachedRequest = (CachedBodyHttpServletRequest) request;
writer.append(new String(cachedRequest.getCachedBody()));
writer.append("\r\n");
}
}
}