繁体   English   中英

HTTP 状态 406 在 rest api Z2A2D595E6ED9A0B234F027F2B6B6B 启动时

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM