Commit c49f9179 authored by 黎博's avatar 黎博

新增curl解析接口

parent 18a5c48b
...@@ -111,10 +111,32 @@ public class InterfaceController { ...@@ -111,10 +111,32 @@ public class InterfaceController {
return JsonResult.buildSuccessResult(interfaceService.removeById(interfaceId)); return JsonResult.buildSuccessResult(interfaceService.removeById(interfaceId));
} }
/**
* 解析CURL
* @param code curl代码
* @return
*/
@GetMapping("/curl") @GetMapping("/curl")
public JsonResult resolutionCurl(@RequestParam String code) { public JsonResult resolutionCurl(@RequestParam String code) {
List<Map<String, String>> headersList = new ArrayList<>(); List<Map<String, String>> headersList = new ArrayList<>();
List<Map<String, String>> parametersList = new ArrayList<>(); List<Map<String, String>> parametersList = new ArrayList<>();
Map<String, Object> resultMap = new HashMap<>();
if (code.contains("GET")) {
// 处理GET请求
String getParameters = code.split("\\?")[1];
// 去掉末尾的单引号
getParameters = getParameters.substring(0, getParameters.length()-1);
String[] paramPair = getParameters.split("&");
for (String pair: paramPair) {
String[] pairList = pair.split("=");
Map<String, String> map = new HashMap<>();
map.put("paramsName", pairList[0]);
map.put("paramsValue", pairList[1]);
parametersList.add(map);
}
} else if (code.contains("POST")) {
// 处理POST请求
String headerRegex = "--header '(.*)'"; String headerRegex = "--header '(.*)'";
String parameterDataRegex = "--data-urlencode '(.*)'"; String parameterDataRegex = "--data-urlencode '(.*)'";
String parameterFormRegex = "--form '(.*)'"; String parameterFormRegex = "--form '(.*)'";
...@@ -122,7 +144,7 @@ public class InterfaceController { ...@@ -122,7 +144,7 @@ public class InterfaceController {
Pattern headerPattern = Pattern.compile(headerRegex); Pattern headerPattern = Pattern.compile(headerRegex);
Pattern parameterDataPattern = Pattern.compile(parameterDataRegex); Pattern parameterDataPattern = Pattern.compile(parameterDataRegex);
Pattern parameterFormPattern = Pattern.compile(parameterFormRegex); Pattern parameterFormPattern = Pattern.compile(parameterFormRegex);
Pattern parameterJsonPattern = Pattern.compile(parameterJsonRegex); Pattern parameterJsonPattern = Pattern.compile(parameterJsonRegex, Pattern.DOTALL);
Matcher headerMatcher = headerPattern.matcher(code); Matcher headerMatcher = headerPattern.matcher(code);
Matcher parameterDataMatcher = parameterDataPattern.matcher(code); Matcher parameterDataMatcher = parameterDataPattern.matcher(code);
Matcher parameterFormMatcher = parameterFormPattern.matcher(code); Matcher parameterFormMatcher = parameterFormPattern.matcher(code);
...@@ -162,7 +184,6 @@ public class InterfaceController { ...@@ -162,7 +184,6 @@ public class InterfaceController {
while (parameterJsonMatcher.find()) { while (parameterJsonMatcher.find()) {
Map<String, String> parameterMap = new HashMap<>(); Map<String, String> parameterMap = new HashMap<>();
String parameterItem = parameterJsonMatcher.group(1); String parameterItem = parameterJsonMatcher.group(1);
System.out.println(parameterItem);
Map<String, Object> requestMap = JSON.parseObject(parameterItem, Map.class); Map<String, Object> requestMap = JSON.parseObject(parameterItem, Map.class);
for (Map.Entry<String, Object> entry: requestMap.entrySet()) { for (Map.Entry<String, Object> entry: requestMap.entrySet()) {
parameterMap.put("paramsName", entry.getKey()); parameterMap.put("paramsName", entry.getKey());
...@@ -170,9 +191,9 @@ public class InterfaceController { ...@@ -170,9 +191,9 @@ public class InterfaceController {
parametersList.add(parameterMap); parametersList.add(parameterMap);
} }
} }
Map<String, Object> map = new HashMap<>(); }
map.put("headersList", headersList); resultMap.put("headersList", headersList);
map.put("parametersList", parametersList); resultMap.put("parametersList", parametersList);
return JsonResult.buildSuccessResult(map); return JsonResult.buildSuccessResult(resultMap);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment