今天给服务器传了个http head,刚开始我手动输入是ok的,后来直接从接口文档(.doc)里粘贴过去,发现获取不到数据了,服务器的报错日志显示
11-Apr-2019 11:29:59.184 INFO [http-nio-9092-exec-7] 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 (CR or LF) found in method name
at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:228)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
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)
java.lang.IllegalArgumentException: Invalid character (CR or LF) found in method name 这个错误。
我思量了一下http head也没有改啥东西啊,怎么就CR or LF这俩符号有问题。后来手动输入了一下,问题又解决了,我认为这个问题应该是word文档里的带了windows的行尾符 \r\n ,而在llinux下边只识别\n导致了这个问题。
(
Unix系统里,每行结尾只有“<换行>”,即“\n”; Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”; Mac系统里,每行结尾是“<回车>”,即“\r”。
)
后面自己手动输入,取消了行位换行符,所以后面就可以通讯。