繁体   English   中英

如何在 Jersey 客户端 HTTP POST 请求中发布原始 json 文本?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM