首页 > 解决方案 > Akka HTTP Java 客户端示例到 POST JSON msg

问题描述

如何使用 Akka HTTP 编写 Java HTTP 客户端,使用编组器发布 JSON 消息以将 POJO 转换为 JSON。我能找到的只是这样的例子:

HttpRequest req =
    HttpRequest.POST("/user")
        .withEntity(HttpEntities.create(
            ContentTypes.APPLICATION_JSON,
            "{\"some\": json}"
        ));

它对 JSON 进行硬编码,而不是使用编组器。

标签: javajsonhttp-postakka-http

解决方案


您可以简单地使用任何 json 编组器代替硬编码字符串,它应该可以工作。下面我以杰克逊编组器为例。

class RequestProducer {
    private ObjectMapper objectMapper;

    public RequestProducer(ObjectMapper objectMapper) {
       this.objectMapper = objectMapper;
    }

    HttpRequest post(SomePojo somePojo) {
        return HttpRequest.POST("/user")
            .withEntity(HttpEntities.create(
              ContentTypes.APPLICATION_JSON,
              objMapper.writeValueAsString(somePojo)));        
    }
}

推荐阅读