我有一个springboot休息控制器:
@RestController
public class UserController {
@Autowired UserRepository userRepository;
@RequestMapping(value = "/account/{userid:.+}", method = RequestMethod.GET)
public HttpEntity<Account> getAccountByUserId(@PathVariable String userid) {
if(userid == null) {
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
Account user = userRepository.findOneByUserid(userid.toLowerCase());
if(user == null) {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
return new ResponseEntity<>(user, HttpStatus.OK);
}
}
注意@PathVariable定义有点奇怪,因为Spring MVC @PathVariable with dot (.) is getting truncated。
此调用完美无缺,我收到了一个带有可爱json的200状态代码: http://.../account/scarlett.j@myplace.com
然而这个电话 http://.../account/scarlett.j@myplace.com.au 返回状态代码406和调试日志显示消息&#34; org.springframework.web.HttpMediaTypeNotAcceptableException:找不到可接受的表示&#34;
为什么以及如何修复它?感谢。