gpt4 book ai didi

java - APPLICATION_STREAM_JSON_VALUE 和 APPLICATION_NDJSON_VALUE 的区别

转载 作者:行者123 更新时间:2023-12-04 11:23:05 44 4
gpt4 key购买 nike

在使用 Spring 5 响应式(Reactive) API 时,我遇到了已弃用的 MediaType APPLICATION_STREAM_JSON_VALUE,当使用它以一种流的方式显示来自 GET REST 端点的值时,它会在值出现在浏览器上时显示它们。但截至今天,文档指出它已被 APPLICATION_NDJSON_VALUE 取代,如下文所述:

APPLICATION_STREAM_JSON_VALUE Deprecated. as of 5.3 since itoriginates from the W3C Activity Streams specification which has amore specific purpose and has been since replaced with a differentmime type. Use APPLICATION_NDJSON as a replacement or any otherline-delimited JSON format (e.g. JSON Lines, JSON Text Sequences).


当我检查 MediaType APPLICATION_NDJSON_VALUE 的行为时,我观察到当在浏览器上使用 GET API 时,结果不是在浏览器上实时流式传输,而是作为文件下载,您可以稍后查看。但这会以任何方式影响流媒体行为还是完全相同? APPLICATION_NDJSON_VALUE 是否也带来了其他一些意义,或者它只是 APPLICATION_STREAM_JSON_VALUE 的纯粹替代品。如果它只是一个替代品,为什么浏览器的流媒体行为会变成 Flux 下载的结果?或者让我知道我在尝试复制确切行为时是否犯了任何错误?

最佳答案

But does that in any way impact the streaming behaviour or is it exactly the same?


完全一样。内容类型 header 只是告诉客户端它正在提供什么类型的内容,仅此而已。浏览器将尽最大努力查看该 header 并确定是显示内联内容还是下载它,但这只是“最佳猜测”,尤其是在诸如换行符分隔的 JSON 之类的合理新标准的情况下。实际上,您无论如何都不会在浏览器中打开它(而是将其作为 API 使用),因此这并不是什么大问题。
如果实在需要不用浏览器下载,可以尝试添加 Content-Disposition: inline header - 但就我个人而言,我只是忽略浏览器的行为,并使用更适合该工作的工具(例如 curl)来使用它。

关于java - APPLICATION_STREAM_JSON_VALUE 和 APPLICATION_NDJSON_VALUE 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66614001/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com