问题描述
我有一个 Spring Boot 应用程序,为此我编写了一堆集成测试,他们使用 RestAssured 来促进 REST 层交互。 以下是我测试中 RestAssured 设置的示例:
@Before
public void restAssuredSetup() {
RestAssured.port = getPort();
RestAssured.baseURI = "http://localhost";
}
我的测试工作正常,一切正常,但是当我在进行一些重构工作后重新运行整个测试套件时,它开始失败:
2021-04-28 20:35:37.097 INFO [] 31959 --- [o-auto-1-exec-1] o.apache.coyote.http11.Http11Processor : 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 method name [0x83\uD821\uDD580xc70xbc0xe50xaf0x9e0xe70x890xaa0xec0xb90xad0xee0xbe0xe20x840x840xea0xba0x9d0xe30xbf0x98...]. HTTP method names must be tokens
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:413)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:261)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
at org.apache.tomcat.util.net.socketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:830)
HTTP/1.1 400
请注意此行为的另一个特殊方面:如果我从 IDE 进入调试模式,测试将通过 50% 以上的时间。
我也从 Maven 运行了我的测试套件,在那里看到了同样的错误。
我在这里一无所知。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)