3

如何创建接受“@”符号参数的 GET 休息方法?目前它不喜欢这样,因为@ 符号。我正在传递 /resource/user/my@email.com/password

@Path("/user/{Email}/{Password}")
@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public JResponse<DtoUser> ValidateUser(@PathParam("Email") String email,@PathParam("Password") String password) {
    logger.log(Level.INFO, "Validating user {0}", email);
    IUserRepository repo =  new UserRepository();
    return JResponse.ok(repo.ValidateUser(email, password)).build();

}
4

3 回答 3

2

看看这个答案。似乎您可以在通话中使用“%40”对“@”进行编码。我希望它对你有帮助。

于 2012-10-10T20:57:29.900 回答
1

您需要对要添加到字符串中的值进行编码。例如 @ 符号转换为 %40。

URLEncoder.encode(string,"UTF-8"); 会将字符串编码为

/resource/user/my%40email.com/password

这方面的更多信息可以在 jdk http://docs.oracle.com/javase/7/docs/api/java/net/URLEncoder.html的 javadocs 中找到

于 2012-10-10T20:56:40.623 回答
0

请在使用 URLEncoder 类之前阅读此内容:http: //www.subbu.org/blog/2008/02/uri-escaping-and-javaneturlencoder

一个不错的选择是 Google 的 PercentEscaper: http ://gdata-java-client.googlecode.com/svn/tags/2.0.0-alpha/javadoc/com/google/api/data/client/v2/escape/PercentEscaper.html

于 2012-10-10T21:12:00.360 回答