Solución:
Caracteres reservados como ,
y /
debe estar codificado en URL.
-
,
está codificado como%2C
-
/
está codificado como%2F
Tratar http://ip:port/samples/2000%2C2006%2C6576%2FM982
.
El RFC 3986 define el siguiente conjunto de caracteres reservados que se pueden usar como delimitadores. Por lo tanto, requieren codificación de URL:
: / ? # / [ ] / @ ! $ & ' ( ) * + , ; =
Los caracteres no reservados no requieren codificación de URL:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 - _ . ~
Si la codificación de URL ,
no es una buena alternativa para usted, podría considerar el uso de parámetros de consulta. Tu código será como:
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getSample(@QueryParam("business") String business,
@QueryParam("year") String year,
@QueryParam("sample") String sampleId {
...
}
Y tu URL será como http://ip:port/samples?business=2000&year=2006&sample=6576%2FM982
.
Tenga en cuenta que el /
aún debe estar codificado en URL.
Tratar de usar {muestra:. +} en lugar de {muestra}
La anotación @Path es una expresión regular y las expresiones regulares no coinciden /
personaje.
Para anular la expresión regular, podemos agregar ".+
al final de PathParam
.
De esta manera podemos permitir /
en nuestro camino y evitar el uso de% 2F.