[英]406 HTTP Status for custom accept/header and return type in Spring REST API
[英]HTTP Status 406 in rest api spring boot when getByEmail
我想通过 email 搜索,但总是得到“错误”:“不可接受”,
@RestController
@RequestMapping("api/users")
public class UserController {
private final UserService userService;
@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
@GetMapping(value = "/{name:.+}")
public User getUser(@PathVariable String name) {
return userService.getUserByEmail(name);
}
@Service
public class UserServiceImpl implements UserService {
private final UserRepository userRepository;
public UserServiceImpl(UserRepository userRepository) {
this.userRepository = userRepository;
}
@Override
public User getUserByEmail(String email){
User user = userRepository.findByEmail(email).get();
return user;
}
@Repository
public interface UserRepository extends JpaRepository<User,Long> {
Optional<User> findByEmail(@Param("email") String email);
}
添加 header 应用程序/json header 但不起作用。
我可以通过Id和firstName获得的另一件事,这可以正常工作
尝试在controller中的 pathVariable 中添加值:
括号中的内容是一个正则表达式,所以它应该可以工作。
@GetMapping("/statusByEmail/{email:.+}/")
public String statusByEmail(@PathVariable(value = "email") String email){
//code
}
来自邮递员/休息客户
Get http://mywebhook.com/statusByEmail/abc.test@gmail.com/
如果这不起作用,请尝试以 URLEncoded 格式提供 email:问题可能是由于多个.
在请求中例如: alireza.ca%40gmail.com
或者
您可以设置Content-Type: application/x-www-form-urlencoded
来自动进行 url 的编码
希望这应该有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.