Java Akka actor 的 HTTP POST 请求未命中 post 路径

Java Akka actor's HTTP POST request not hitting the post path

我正在使用 akka 版本 2.6.17 和 akka http 10.2.7 创建一个 post 请求。我的系统绑定到端口 8080,可以很好地接收来自 Postman 的 post 请求。但是,当从 akka 本身内部发送 post 请求时(发送 post 请求的 actor),永远不会命中 POST 路径。 这是 post 请求

public void postStockCheck(){
        String data = "{\"id\": \"yes\"}";
        HttpRequest.POST("http://localhost:8080/hello")
        .withEntity(HttpEntities.create(ContentTypes.TEXT_PLAIN_UTF8, data));
    }

这是路径:

return route(
        path("hello", () ->
            post(() ->
                entity(Unmarshaller.entityToString(), (string) -> {
                  System.out.println("request body: " + string);
                  return complete("Success");
                })
              )));
      }

如前所述,该路径将从 postman 开始工作。如果我遗漏了什么,我们将不胜感激!

您在 postStockCheck 中创建了一个 HttpRequest,但尚未发射它。要触发请求,您可以使用 Http.

中的 singleRequest 方法
public void postStockCheck(ActorSystem system) {
    String data = "{\"id\": \"yes\"}";

    Http.get(system)
            .singleRequest(HttpRequest.POST("http://localhost:8080/hello")
            .withEntity(HttpEntities.create(ContentTypes.TEXT_PLAIN_UTF8, data)));
}

要更好地了解触发请求和收集响应,请查看 docs