Invalid character found in the request target. 的解决办法

来源:互联网 发布:阿里云鹰眼 编辑:程序博客网 时间:2024/06/10 21:21

做一个服务器系统,远程服务器没有问题,但是在本地的tomcat下跑就会出现下面的报错:

十月 20, 2017 3:54:27 下午 org.apache.coyote.http11.AbstractHttp11Processor process信息: Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.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.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:283)    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1045)    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1533)    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1489)    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)    at java.lang.Thread.run(Unknown Source)

在接受post请求的时候发生了报错,查了一下,发现是tomcat版本不同导致的,我在本地使用的是8.0.45,服务器端使用的是8.0.36(差了这么一点都不行ORZ)然后呢,tomcat在8.0.36之后,禁止了post请求中的一些特殊字符,Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ])。而我正好在post请求中使用了<>尖括号,这就导致了上述的错误。
我的解决办法就是将本地的tomcat版本调整为8.0.36,和远程服务器端保持一致。

阅读全文
0 0
原创粉丝点击