前端项目传递来 windows 目录的字符串,整个 json 参数如下:
{"originalFilename":"D:\autobackup\PADAccount20220705145150.bak","zipFilename":"D:\autobackup\db.zip"}
是 post 请求,controller 中该方法的代码如下:
@PostMapping("/toZip")
public String toZip(@RequestBody Map<String,String> params){
String originalFilename = params.get("originalFilename");
String zipFilename = params.get("zipFilename");
try {
ZipUtils.toZip(originalFilename,zipFilename);
}catch (Exception e){
return "压缩时出现异常!";
}
return "压缩完毕!";
}
后端 springboot 项目会报错400,controller方法内的第一行下断点也捕捉不到
查阅资料后说是要配置内置 tomcat 参数,在项目启动类中添加下面代码
@Bean
public TomcatServletWebServerFactory tomcatServletWebServerFactory (){
// 修改内置的 tomcat 容器配置
TomcatServletWebServerFactory tomcatServlet = new TomcatServletWebServerFactory();
tomcatServlet.addConnectorCustomizers(
(TomcatConnectorCustomizer) connector -> {
connector.setProperty("relaxedQueryChars", "\"<>[\\]^`{|}");
connector.setProperty("relaxedPathChars", "\"<>[\\]^`{|}");
}
);
System.out.println("重新配置内置 tomcat");
return tomcatServlet;
}
重新启动程序,再次请求一样的错误
请问要如何解决 - google 上翻了3页,每个帖子都照着做没解决。
传json就要规范起来,接口限制Content-Type只能是json
@PostMapping(value = "/toZip", consumes = MediaType.APPLICATION_JSON_VALUE)
前端提交的时候设置Content-Type为application/json