[英]How to post raw json text in Jersey Client HTTP POST request?
我想发出一个HTTP POST
请求,它要求参数必须作为原始 JSON 文本传递,但我不知道如何使用 Jersey 客户端。
这是 API 规范(在 Postman Rest Client 中运行良好):(请看我的 Postman 的屏幕截图,URL、正文中的参数和 2 个标头是 Content-Type:application/json 和 Accept:application/json)
这是我在 Jersey 中尝试过的:
JsonObject parameters = new JsonObject();
parameters.addProperty("centerId", centerId);
parameters.addProperty("studentId", studentId);
if (fromDate != null) {
parameters.addProperty("fromDate", fromDate);
}
if (toDate != null) {
parameters.addProperty("toDate", toDate);
}
Object response = client.target("http://localhost:8080/rest").path("student/calendar")
.request(MediaType.APPLICATION_JSON).post(Entity.json(parameters), String.class);
但没有任何效果。 谁能建议在这种情况下处理泽西岛的正确方法是什么? 谢谢。
为您的实体构造使用InputStream
,它应该可以工作
String payload = "{\"schoolId\":1,\"studentId\":1,\"fromDate\":\"1454259600000\",\"toDate\":\"1456765200000\"}";
client.target("<targetURI>")
.request(MediaType.APPLICATION_JSON)
.post(Entity.entity(
new ByteArrayInputStream(payload.getBytes()),
MediaType.APPLICATION_JSON
));
但最终, Entity.json(payload)
也应该可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.