Sono nuovo di JAX-RS e sto cercando di utilizzare Jersey per creare un semplice servizio Web RESTful.JAX-RS @PathParam Come passare una stringa con barre, trattini e uguali anche
Ho 2 domande. Si prega di chiarire questi:
Sto cercando di avere la mia semplice webservice come questo URL
http://localhost:8080/SampleJersey/rest/inchi/InChIName
L'InChIName è una stringa come questo
InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2- 5H,1H3,(H,11,12)
. Come faccio a passare questo come@PathParam
, voglio dire che una normale stringa sta funzionando bene ma qui ci sono barre, trattini e virgole. Come faccio a ignorarli. Ho provato a metterlo tra virgolette, ma non ha funzionato. Come dovrei farlo?Ho bisogno di passare quello
InChI
a un altro webservice e che restituisce un XML come output e voglio visualizzare quell'output XML come output del mio Webservice. Se ho@Produces("application/xml")
funzionerà?
Questo è il mio codice:
@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;
}
}
Grazie mille. Funzionerà anche per = (uguale a)? –
Fare clic sul primo collegamento. Vedrai che '=' è anche un carattere riservato e che sarà codificato in '% 3D'. Inoltre, è un po 'di sforzo fare semplicemente un 'System.out.println (URLEncoder.encode (" = "," UTF-8 "));' in un'applicazione di test con un 'main()';) – BalusC
Grazie Balus. Mi manca ancora qualcosa.Se fornisco il seguente URL REST http: // localhost: 8080/SampleJersey/rest/inchi/"hello-there", tutto viene codificato correttamente. Ma se introduco la barra come in questo http: // localhost: 8080/SampleJersey/rest/inchi/"ciao/lì", ricevo l'errore non trovato nella risorsa. Come faccio a ottenere le strisce codificate qui, e se voglio le barre in quanto tali senza essere codificato, cosa devo fare? –