Używam Ubuntu i zainstalowałem na nim cURL . Chcę przetestować moją wiosenną aplikację REST za pomocą cURL. Napisałem mój kod POST po stronie Java. Chcę jednak przetestować to za pomocą cURL. Próbuję opublikować dane JSON. Przykładowe dane są takie:
{"value":"30","type":"Tip 3","targetModule":"Target 3","configurationGroup":null,"name":"Configuration Deneme 3","description":null,"identity":"Configuration Deneme 3","version":0,"systemId":3,"active":true}
Używam tego polecenia:
curl -i \
-H "Accept: application/json" \
-H "X-HTTP-Method-Override: PUT" \
-X POST -d "value":"30","type":"Tip 3","targetModule":"Target 3","configurationGroup":null,"name":"Configuration Deneme 3","description":null,"identity":"Configuration Deneme 3","version":0,"systemId":3,"active":true \
http://localhost:8080/xx/xxx/xxxx
Zwraca ten błąd:
HTTP/1.1 415 Unsupported Media Type
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Content-Length: 1051
Date: Wed, 24 Aug 2011 08:50:17 GMT
Opis błędu jest następujący:
Serwer odrzucił to żądanie, ponieważ jednostka żądania ma format nieobsługiwany przez żądany zasób dla żądanej metody ().
Dziennik Tomcat: „POST / ui / webapp / conf / clear HTTP / 1.1” 415 1051
Jaki jest prawidłowy format polecenia cURL?
To jest mój PUT
kod boczny Java (przetestowałem GET i DELETE i działają):
@RequestMapping(method = RequestMethod.PUT)
public Configuration updateConfiguration(HttpServletResponse response, @RequestBody Configuration configuration) { //consider @Valid tag
configuration.setName("PUT worked");
//todo If error occurs response.sendError(HttpServletResponse.SC_NOT_FOUND);
return configuration;
}