Soy nuevo en JAX-RS y estoy tratando de usar Jersey para construir un servicio web RESTful simple.JAX-RS @PathParam Cómo pasar una cadena con barras, guiones y es igual a
Tengo 2 preguntas. Por favor, aclarar los siguientes:
Estoy tratando de tener mi servicio web simple como este URL
http://localhost:8080/SampleJersey/rest/inchi/InChIName
El InChIName es una cadena como esta
InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2- 5H,1H3,(H,11,12)
. ¿Cómo paso esto como@PathParam
? Quiero decir que un String normal está funcionando bien, pero aquí hay barras, guiones y comas. ¿Cómo hago para ignorar esto? Traté de ponerlo entre comillas, pero eso no funcionó. ¿Cómo debería hacer esto?Necesito pasar ese
InChI
a otro servicio web y eso devuelve un XML como salida y quiero mostrar ese resultado XML como salida de mi servicio web. Si tengo@Produces("application/xml")
¿funcionará?
Este es mi código:
@Path("/inchi")
public class InChIto3D {
@GET
@Path("{inchiname}")
@Produces("application/xml")
public String get3DCoordinates(@PathParam("inchiname")String inchiName) {
String ne="";
try{
URL eutilsurl = new URL(
"http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?"
+ "db=pccompound&term=%22"+inchiName+"%22[inchi]");
BufferedReader in = new BufferedReader(
new InputStreamReader(eutilsurl.openStream()));
String inputline;
while ((inputline=in.readLine())!=null)
ne=ne+inputline;
}catch (MalformedURLException e1) {
}catch (IOException e2){
}
return ne;
}
}
Muchas gracias. ¿Funcionará esto incluso para = (es igual a)? –
Haga clic en el primer enlace. Verás que '=' también es un carácter reservado y que se codificará en '% 3D'. Además, es un poco de esfuerzo hacer un 'System.out.println (URLEncoder.encode (" = "," UTF-8 "));' en una aplicación de prueba con un 'main()';) – BalusC
Gracias Balus. Todavía me falta algo.Si doy lo siguiente en la URL http RESTO: // localhost: 8080/SampleJersey/descanso/inchi/"hola-ahí" Casi todo bien quedan codificados. Pero si me presento en la barra allí como este http: // localhost: 8080/SampleJersey/descanso/inchi/"hola/no" Me recurso no se encuentra el error. ¿Cómo obtengo las barras codificadas aquí, y si quiero las barras como tales sin codificación, qué hago? –