springboot RFC 7230 and RFC 问题

由于前端有很多接口是调用原来平台,接口不规范,全部再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启动器


   org.springframework.boot
   spring-boot-starter-web
   
      
         org.springframework.boot
         spring-boot-starter-tomcat
      
   

添加jetty启动器


   org.springframework.boot
   spring-boot-starter-jetty

原文转自:springboot内置tomcat不支持中文字符集解决

你可能感兴趣的:(springboot RFC 7230 and RFC 问题)