1
我想創建一個簡單的休息服務,使用spring mvc。除了一種方法,一切正常!JAVA:restfull web服務沒有正確傳遞參數
我想傳遞一個簽名(使用私鑰),在Base64中編碼(使用bouncy castle encoder)作爲參數,所以我可以在服務器端驗證它。問題是,簽名沒有正確地到達服務器!
我的服務器方法:
@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();
}
}
我的客戶方法:
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));
}
我試着調試和服務器正確接收的ID和URL,但不簽名(其只是某種垃圾)。
任何人都可以幫我嗎?謝謝
你試過用字符串而不是字節[]爲sig嗎? –
我曾嘗試使用字符串,但沒有運氣......我也嘗試將一個字符串轉換爲字節數組,如 - 'finalUrl.getUrl()。getbytes()'但仍然,服務器沒有得到正確的 – Snox