所以我创建了这个注册API
@PostMapping("/register")
public ResponseEntity<String> register(@RequestBody RegisterRequest registerRequest){
if (userRepository.findByEmail(registerRequest.getEmail())!=null){
return new ResponseEntity<>("Email already exist",HttpStatus.BAD_REQUEST);
}
User user = new User();
user.setEmail(registerRequest.getEmail());
user.setName(registerRequest.getName());
user.setLastName(registerRequest.getLastName());
user.setPassword(passwordEncoder.encode(registerRequest.getPassword()));
userRepository.save(user);
authenticationManager.authenticate(
new UsernamePasswordAuthenticationToken(registerRequest.getEmail(), registerRequest.getPassword())
);
return new ResponseEntity<>(jwtUtil.generateToken(
registerRequest.getEmail(),
userRepository.findByEmail(registerRequest.getEmail()).getId(),
registerRequest.getName() +" "+registerRequest.getLastName()
)
,HttpStatus.OK
);
}
当我获取并运行我的反应项目并转到注册页面时,这工作正常,没有任何错误,我无法注册用户。 另外,当我在邮递员上使用相同的 api 时 { “名字”:“爱丽丝”, “姓氏”:“史密斯”, "email": "[电子邮件受保护]", “密码”:“密码123” } 我在控制台上收到一个错误,例如
Invalid character found in method name [0x160x030x010x000xf70x010x000x000xf30x030x030x0e0xbca0x910x010xf8.0xc40x840xbecS<0xb5w`"0xf1M0xbe0xa10xcd0xf830xf3y0x8a0x110xc80xf80xca6 ]. HTTP method names must be tokens
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:419) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:271) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
2024-03-26 17:11:04.733 INFO 9612 --- [nio-8080-exec-6] 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 [0x160x030x010x000xf70x010x000x000xf30x030x030xc930xfa0xfc0xc70xbd0xf80xfcK0x1b=R0x00t0xf60x1fN0xe1m0x100x84>0x830xf0d0xc8H0xf3e0xb3KC ]. HTTP method names must be tokens
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:419) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:271) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
我已经检查过我使用的是“post”并且没有任何特殊字符
将客户端 URL 中的 https 更改为 http。