java - Micronaut 中 HttpServletRequest 和 HttpServletResponse 的替代方案

标签 java kotlin micronaut

我正在玩 Micronaut,目前我想念的是 HttpServletRequest 的访问权限和HttpServletResponse 。这些通常允许访问以下内容:

  • 请求参数
  • 输入/输出流(尤其是直接写入输出流)
  • 获取/设置cookie
  • 获取/设置 header
  • 获取客户端IP

此外,我不确定以下替代方案:

  • @RequestParam files: List<MultipartFile>
  • @RequestBody myClass: MyClass

最佳答案

https://docs.micronaut.io/latest/guide/index.html#requestResponsehttps://docs.micronaut.io/latest/guide/index.html#binding展示如何绑定(bind)到请求参数、cookie、 header 等。

https://docs.micronaut.io/latest/guide/index.html#uploads展示如何处理文件上传。

input/output stream (especially writing directly to output stream)

Micronaut 的处理方式不同,因此您无法访问要写入的流。您可以返回响应类型,以便在数据可用时将其推送到响应。

getting client IP

通常可通过主机 header 或 https://docs.micronaut.io/latest/api/io/micronaut/http/HttpRequest.html#getRemoteAddress-- 获得

编辑:发送分块的 XML 文件

@Get(uri = "/xml", produces = MediaType.TEXT_XML)
Flowable<String> getXml() {
    return Flowable.create(emitter -> {
        emitter.onNext("<<xml header>>");
        //do some work
        emitter.onNext("more xml");
        emitter.onNext("<<xml footer>>");
    }, BackpressureStrategy.BUFFER);
}

关于java - Micronaut 中 HttpServletRequest 和 HttpServletResponse 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55870398/

相关文章:

Reactive SQL 客户端 (Quarkus/Vert.X) 中的 Kotlin 协程事务

java - 如何从 micronaut Controller 重定向到 URL?

java - ArrayList add(index, object) 与 add(object) 复杂性

java - 查找某个项目在数组中出现的次数

android - 从 Kotlin RecyclerView(cardview) onclick 加载详细信息 View

aws-sdk - 使用 micronaut-bom1.2.10、graal19.2.1 和 aws-sdk2.10.56 构建应用程序时出现错误 :org. apache.commons.logging.LogFactoryjava.lang.NoClassDefFoundError

java - Micronaut 多级 bean 验证

java - 使用 hibernate 版本列时获取 NPE

java - Apache Camel - 如何使用InputStream作为源?

gradle - 使用 gradle kotlin-dsl 覆盖 spring boot 依赖版本