.z后缀在restful Web服务中会出现'406 Not Acceptable'错误

时间:2015-02-08 04:09:38

标签: java spring rest spring-mvc restful-url

基于spring MVC我有一个像http://127.0.0.1:9000/users/{username}这样的休息时间。

如果我将x@y.comx@y.a分配给{username},则效果很好。

但是,如果我将x@y.z分配给{username},则客户端会收到406 Not Acceptable错误,可以收到请求,服务端也不会发生错误。

这意味着:

http://127.0.0.1:9000/users/x@y.a

http://127.0.0.1:9000/users/x@y.com

http://127.0.0.1:9000/users/x@y.z错误(406在客户端不可接受)

任何人都可以帮忙解释为什么x@y.ax@y.com可以正常工作但x@y.z无法解决?

感谢。


请找到如下控制器。

@RequestMapping("/users/{login}")
public UserProfile getUserProfile(@PathVariable("login") String login) {
    log.info(String.format("Get user profile by login %s", login));
    UserProfile userProfile = userProfileRepo.getUserProfile(login);

    if (userProfile == null) {
        log.info(String.format("User profile is null for user %s", login));
        userProfile = new UserProfile();
        userProfile.setLogin(login);
        userProfileRepo.save(userProfile);
        return new UserProfile();
    }

    return userProfile;
}

一个有用的发现,唯一的日志显示x@y.z被截断为x@y

User profile is null for user x@y

同时,如果我将路径变量从@PathVariable移动到@RequestParam,它就可以工作。

因此,当将{PathVariable {username}分配给x@y.z时,只能分配x@y,谁知道原因?

0 个答案:

没有答案