2017-05-30 49 views
0

其實,我有這個休息模板請求:如何與Spring引導RestTemplate後數據

@RequestMapping(value = "/uploadProperties", method = RequestMethod.POST) 
public @ResponseBody RessourceMetadata uploadProperties(
     @RequestParam(value = "group", required = true) String group, 
     @RequestParam(value = "id", required = true) String id, 
     @RequestParam(value = "version", required = true) String version, 
     @RequestParam(value = "env", required = true) String env) { 
    try { 
     Ressource ressource = new Ressource(content, group, id, version, env, PropertiesFileUtils.getPropertiesFilename()); 
     getRessourceService().save(ressource); 
     return ressource.getMetadata(); 
    } catch (RuntimeException e) { 
     log.error("Error while uploading.", e); 
     throw e; 
    } catch (Exception e) { 
     log.error("Error while uploading.", e); 
     throw new RuntimeException(e); 
    } 
} 

我想添加一個@RequestBody這樣的:

@RequestBody @RequestParam(value = "content", required = true) ????? content 

這個新content可以包含任何。

如何正確傳遞content參數?

+0

你所說的 '可以包含任何東西' 是什麼意思?你想把組,版本,id和env等所有字段封裝到內容中,這是否正確? – pvpkiran

+0

@pvpkiran不,是一個新的領域,我可以把代碼或鍵/值線,例如... 我不知道是否有可能做我想問什麼? – Mercer

+0

東西或者是'@ RequestBody'或'@ RequestParam'不是兩個...... –

回答

0

聲明一個類這樣

class PostBody{ 
    Map<String, String> content; 
} 

使用這種PostBody爲@RequestBody。您可以將任何字符串鍵值對傳遞給此結構。事情是這樣的

{ 
"content": 
    { 
     "version" : "1.1", 
     "env" : "test" 
    } 
} 

{ 
"content": 
    { 
     "version" : "1.1", 
     "env" : "test", 
     "id" : "1.1" 
    } 
} 
+0

我有這樣的錯誤 響應體 { 「時間戳」:1496133459278, 「狀態」:500, 「錯誤」: 「內部服務器錯誤」, 「exception」:「java.lang.IllegalArgumentException」, 「message」:「'Content-Type'不能包含通配符類型'*'」, 「path」:「/ api/test/uploadProperties「 } – Mercer

+0

錯誤很明顯,我猜'內容類型'不能包含通配符類型'*''你正在傳遞內容類型*。你怎麼稱呼這個休息的終點? – pvpkiran

+0

'curl -X POST -header「Content-Type:*/*」--header「Accept:*/*」-d「{content:\」 \「version \」:\「 1.1 \「, \」env \「:\」test \「, \」id \「:\」1.1 \「 } }」「http:// localhost:8080/api/test/uploadProperties?group = a&id = a&version = a&env = a「' – Mercer