Aşağıdaki kodu olması:Yaylı kontrol ünitesinde düz json gövdesine nasıl erişilir?
@RequestMapping(value = "/greeting", method = POST, consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE)
@ResponseBody
public String greetingJson(@RequestBody String json) {
System.out.println("json = " + json); // TODO json is null... how to retrieve plain json body?
return "Hello World!";
}
Dize json argüman her zaman json vücutta gönderilmesine rağmen boş.
Not Otomatik olarak dönüştürmeyi istemediğim için no'lu adres, yalnızca düz json sonucunu istiyorum.
@RequestMapping(value = "/greeting", method = POST, consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE)
@ResponseBody
public String greetingJson(@RequestBody User user) {
return String.format("Hello %s!", user);
}
Muhtemelen kullanımını gerçek naaşı teslim almak üzere argüman olarak ServletRequest veya inputStream kullanabilirsiniz, ama daha kolay bir yol olup olmadığını merak: Örneğin
Bu
çalışır? Şu ana kadar bulunan
'String jsonBody = IOUtils.toString (request.getInputStream());' hızlı bir şekilde ihtiyacınız varsa Apache ile tek liner. [Ve benzer bir soru.] (Http://stackoverflow.com/questions/5806724/springs-requestbody-providing-empty-string-on-post) – madhead
Bu muhtemelen işe yarayacaktır, ancak http olmaktan kurtulmak istiyorum. argüman olarak harekete geçin ve Spring'in içeriği otomatik olarak almasına izin verin ... (yine de cevabınız için teşekkürler) –