由于前端有很多接口是调用原来平台,接口不规范,全部再url当中拼接参数,有"",{}等各种特殊字符。springboot默认集成tomcat8,tomcact8又作了校验,即使修改配置依然无法对"进行解析,会报The valid characters are defined in RFC 7230 and RFC 3986错误。由于前端无法修改.所以就单独弄了个服务,再marven设置不使用tomcat容器,使用jetty解决了这个问题(这个服务就专门接收前端这种不规则得字符)如下是操作方法。 错误信息:
java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986 at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:192) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1028) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)###不用tomcat,改用jetty可以解决 排除tomcat启动器
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>添加jetty启动器
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency>原文转自:springboot内置tomcat不支持中文字符集解决