【我的问题】使用tomcat-7.0.104版本启动war包,通过Postman发送get请求,后台报错无效字符
Jul 17, 2020 11:16:19 AM org.apache.coyote.http11.AbstractHttp11Processor process
INFO: Error parsing HTTP request header
Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in the request target [/AppHttpServer/childServlet?resultMsg=jQuery110207745351287510183_1593847521419&data={%22personBirthday%22:%222009-01-23%22,%22personName%22:%22%22,%22personCardno%22:%222009242180%22,%22personNo%22:%22%22,%22logo%22:%22phone%22,%22wxinId%22:%22oDlo2t1NknzCrLea_6D5JRi4I0Cc%22}].
The valid characters are defined in RFC 7230 and RFC 3986
at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:213)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1108)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:654)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:317)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
【解决办法】修改$TOMCAT_HOME/conf/catalina.properties,添加属性 tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}
如果是springboot工程,可以在SpringBootApplication的的main方法中增加 System.setProperty("tomcat.util.http.parser.HttpParser.requestTargetAllow","|{}");