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の javadoc を参照してください。

于 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 に答える