Saya menggunakan Ubuntu dan menginstal CURL di atasnya. Saya ingin menguji aplikasi Spring REST saya dengan CURL. Saya menulis kode POST saya di sisi Java. Namun, saya ingin mengujinya dengan CURL. Saya mencoba memposting data JSON. Contoh data seperti ini:
{"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}
Saya menggunakan perintah ini:
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
Ini mengembalikan kesalahan ini:
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
Deskripsi kesalahannya adalah ini:
Server menolak permintaan ini karena entitas permintaan dalam format yang tidak didukung oleh sumber daya yang diminta untuk metode yang diminta ().
Log Tomcat: "POST / ui / webapp / conf / clear HTTP / 1.1" 415 1051
Apa format yang benar dari perintah cURL?
Ini adalah PUT
kode sisi Java saya (saya telah menguji GET dan DELETE dan mereka bekerja):
@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;
}