当前位置: 首页 > 知识库问答 >
问题:

如何将解组器应用于HttpRequest->HttpResponse流

海雪松
2023-03-14

我在我的java项目中使用akka框架来处理HTTP服务,这就是为什么我使用javaDSL来处理akka流。所以,我的故事在下面。我创建了http缓存池(在我的演员中):

val pool = Http.get(getContext().system()).cachedHostConnectionPool(
            "https://somehost.com",
            ActorMaterializer.create(getContext().system())
    )

然后我基于HttpRequest创建了一个源:

val source = Source.single(HttpRequest.GET("/resources/123/"))

然后我创建了解组器,用于将HttpReporte转换为精确的实体:

val unmarshaller = Jackson.unmarshaller(objectMapper, ResourceEntity.class)

下一步是通过池传递源,以处理我的actor中的响应:

source.via(pool)
      // TODO: unmarshalling
      .to(Sink.actorRef(getSelf(), new FlowCompletedMessage()))
      .run(ActorMaterializer.create(getContext().system()));

问题是如何将解组器应用到这个流中?我找不到任何例子,我觉得自己就像一个试图把正方形塞进圆孔的孩子...

共有1个答案

翟凯
2023-03-14

大致如下:

source.via(pool)
      .mapAsync(response => Unmarshal(response).to[T])
      .to(Sink.actorRef(getSelf(), new FlowCompletedMessage()))
      .run(ActorMaterializer.create(getContext().system()));
 类似资料:
  • 本文向大家介绍Django的HttpRequest和HttpResponse对象详解,包括了Django的HttpRequest和HttpResponse对象详解的使用技巧和注意事项,需要的朋友参考一下 本文研究的主要是Django的HttpRequest和HttpResponse对象的相关内容,具体如下。 请求一张页面时,Django把请求的metadata数据包装成一个HttpRequest对

  • 问题内容: 任何人都可以解释将HttpRequest和HttpResponse记录在文件中的任何技术。 我们正在使用Spring MVC / Spring Rest。 我们想要的是在处理请求之前将其拦截并记录下来。用同样的方法在发送响应之前先截取响应并将其记录下来。 非常感谢。 问题答案: 为了记录请求,Spring提供了一个类(实际上是子类之一)。这可用于记录传入的请求(处理之前和之后)。 根据

  • 有人可以解释在文件中记录HttpRequest和Http响应的任何技术吗? 我们使用的是Spring MVC/Spring Rest。 我们想要的是在处理请求之前拦截请求并记录它。同样的方法是在发送响应之前拦截响应并记录它。 提前非常感谢。

  • 问题内容: 在Python中的lambda函数上使用装饰器有什么语法?例: 结果如下: 但是,当我尝试使用lambda进行相同操作时: 我得到这个: 我觉得这可能是通过允许将语句“插入” lambda使其更通用的好方法。但是,如果存在这样的功能,我不知道语法是什么。 问题答案:

  • 也就是说,我想要达到的目标可以从以下的角度来看 如何使用管道实现?

  • 问题内容: 我正在尝试获得适用于Django(1.2)的流响应的“ hello world”。我弄清楚了如何使用生成器和函数。但是响应仍然没有流式传输。我怀疑其中有一个中间件-也许是ETAG计算器?但是我不确定如何禁用它。有人可以帮忙吗? 到目前为止,这是我迄今为止所拥有的流媒体“世界”: 问题答案: 你可以使用条件装饰器禁用ETAG中间件。这将使你的响应通过HTTP流回。你可以使用命令行工具(如