我正在使用 Akka HTTP 和 Jackson 编码器,但我无法弄清楚如何将 POJO 编码到 HttpEntity
。我的用例实际上非常简单,我想将 POJO 序列化为 JSON 并将其用作对第 3 方 API 的 HTTP 请求的负载。
这是我希望能够做到的:
HttpRequest.POST("/foo").withEntity(Jackson.marshaller(), Foo.class)
可惜好像没有这样的方法。
最佳答案
我不是 100% 确定这是最好的方法,但你可以通过以下方式在 java 下实现它:
String json = ObjectMapperProvider.getObjectMapper().writeValueAsString(payload);
Http.get(system).singleRequest(HttpRequest.POST("url").withEntity(ContentTypes.APPLICATION_JSON, json);
不过,您确实需要一个外部 ObjectMapper,因为 Jackson.xxx 内部的 ObjectMapper 是私有(private)的。
关于java - Akka HTTP,编码 POJO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43973923/