Tôi sử dụng Ubuntu và cài đặt cURL trên nó. Tôi muốn thử nghiệm ứng dụng Spring REST của mình với cURL. Tôi đã viết mã POST của mình ở phía Java. Tuy nhiên, tôi muốn thử nghiệm nó với cURL. Tôi đang cố gắng đăng một dữ liệu JSON. Dữ liệu ví dụ là như thế này:
{"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}
Tôi sử dụng lệnh này:
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
Nó trả về lỗi này:
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
Mô tả lỗi là đây:
Máy chủ từ chối yêu cầu này vì thực thể yêu cầu có định dạng không được tài nguyên yêu cầu hỗ trợ cho phương thức được yêu cầu ().
Nhật ký Tomcat: "POST / ui / webapp / conf / xóa HTTP / 1.1" 415 1051
Định dạng đúng của lệnh cURL là gì?
Đây là PUT
mã bên Java của tôi (Tôi đã kiểm tra GET và DELETE và chúng hoạt động):
@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;
}