我正在使用 JAX-RS 的 Jersey 实现。我想要向该服务 POST 一个 JSON 对象,但是我得到了一个错误代码 415 Unsupported Media Type。我错过了什么吗?
这是我的代码:
这是我的代码:
@Path("/orders")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class OrderResource {
private static Map<Integer, Order> orders = new HashMap<Integer, Order>();
@POST
public void createOrder(Order order) {
orders.put(order.id, order);
}
@GET
@Path("/{id}")
public Order getOrder(@PathParam("id") int id) {
Order order = orders.get(id);
if (order == null) {
order = new Order(0, "Buy", "Unknown", 0);
}
return order;
}
}
以下是 Order 对象:
public class Order {
public int id;
public String side;
public String symbol;
public int quantity;
...
}
像这样的GET请求完美地工作,并以JSON格式返回订单:
GET http://localhost:8080/jaxrs-oms/rest/orders/123 HTTP/1.1
但是像这样的POST请求返回415:
POST http://localhost:8080/jaxrs-oms/rest/orders HTTP/1.1
{
"id": "123",
"symbol": "AAPL",
"side": "Buy",
"quantity": "1000"
}
<property name="extraClass"> <list> <value>package.to.class.Order</value> </list> </property> </bean> - Jérome Pieret
post.setEntity(new StringEntity(projdetailpojo.toString())); post.setHeader("Content-Type", "application/json"); HttpResponse response = client.execute(post);
- Chandru