J'essaye de créer un service de repos simple, en utilisant le ressort mvc. Tout fonctionne bien, sauf pour une méthode! Je veux passer une signature (en utilisant une clé privée), encodée en Base64 (en utilisant l'encodeur de château gonflable) comme paramètre afin que je puisse le valider côté serveur. Le problème est, la signature ne parvient pas au serveur correctement!JAVA: service Web Restfull ne pas passer le paramètre correctement
Ma méthode serveur:
@RequestMapping("/indirectAcess")
public @ResponseBody byte[] getResource(
@RequestParam(value="id", required=true) String idString,
@RequestParam(value="url", required=true) String url,
@RequestParam(value="sig", required=true) byte[] sig){
try{
int id = Integer.parseInt(idString);
if(IndirectAccessValidate(id, url, sig)){
return "HERE IS YOUR RESOURCE".getBytes();
}
return null;
} catch(Exception e){
return "ERROR".getBytes();
}
}
Ma méthode client:
private static void indirectAccess(Scanner in){
System.out.print("URL: ");
String url = in.nextLine();
Teste finalUrl = client.generateIndirectAccess(url);
byte[] response = rest.getForObject(indirect, byte[].class, finalUrl.getId(), finalUrl.getUrl(), finalUrl.getSig());
System.out.println(new String(response));
}
J'ai essayé de le déboguer et le serveur reçoit le signal correctement l'ID et l'URL, mais pas la signature (son juste une sorte de poubelle).
Quelqu'un peut-il m'aider s'il vous plaît? Merci
Avez-vous essayé d'utiliser la chaîne au lieu de byte [] pour sig? –
J'ai essayé d'utiliser une chaîne mais pas de chance ... j'ai aussi essayé de convertir une chaîne en un tableau d'octets comme - 'finalUrl.getUrl(). Getbytes()' mais le serveur ne l'obtenait pas correctement – Snox