首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Akka HTTP文件上传的Tapir -在收到请求结束前发送一个2xx‘早期’响应

带有Akka HTTP文件上传的Tapir -在收到请求结束前发送一个2xx‘早期’响应
EN

Stack Overflow用户
提问于 2021-09-09 14:55:49
回答 1查看 305关注 0票数 1

我使用tapir + akka http作为服务。其中一个端点下载文件。

代码语言:javascript
复制
val load
      : Endpoint[Source[ByteString, Any], Any, Any, AkkaStreams] =
    endpoint
      .post
      .in("load")
      .in(streamBody(AkkaStreams)(
        Schema(Schema.schemaForByteArray.schemaType),
        CodecFormat.OctetStream()
      ))
      .out(???)

Gettin警告

在收到请求结束前发送2xx“早期”响应

我怎么用tapir来处理这件事?

EN

回答 1

Stack Overflow用户

发布于 2021-09-09 21:06:32

这就是akka-http:https://github.com/akka/akka-http/issues/2455的问题。

在代码中使用块的Source吗?Akka-http使用消息,当LastChunk被消耗时,它会发送响应,甚至不会使用LastChunk之后的MessageEnd

MessageEnd未被消耗,messageEndPending被设置为true,因此会发出早期响应的警告。

我通过过滤LastChunk并将其连接到流的末尾--在MessageEnd之后--从而强制akka使用MessageEnd

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69120451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档