gpt4 book ai didi

java - 如何在一个 HTTP 响应中同时发送 ASCII 和二进制数据?

转载 作者:行者123 更新时间:2023-12-02 00:32:03 24 4
gpt4 key购买 nike

我目前在客户端使用 Java 1.4.2 与 Rails 3 服务器通信。当我们最初设计通信时,所有返回的信息都是 ASCII(字母数字),因此我们将使用 JSON 并将其作为映射返回。现在我们发现还需要返回二进制数据(图像),但我们不想发出两个 HTTP 请求。

在一个 HTTP 响应中发送现有 ASCII 信息和二进制数据的最佳方式是什么?我目前的想法是使用 base64 或十六进制编码,但我不知道这是否是最好的方法。在服务器(Ruby)端编码和在客户端(Java 1.4.2)解码的简单方法也是一个巨大的优势。

最佳答案

HTTP 协议(protocol)允许以 multipart/mixed 形式返回响应。这样做时,响应被划分为零个或多个部分,每个部分由边界分隔。每个部分(可以)都有自己的 header ,描述该部分的内容(Content-Type、Content-Length、Content-Disposition 等)。因此,响应中的一部分可以是 ASCII 文本,另一部分可以是八位字节流。

使用此响应类型可能是在一次 HTTP 调用中发回混合内容的最佳选择,但需要您对 Rails 代码进行一些修改。

特别注意,如果您有基于浏览器的客户端使用相同的服务器服务,则并非所有浏览器都能正确处理多部分/混合响应。

关于java - 如何在一个 HTTP 响应中同时发送 ASCII 和二进制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8797536/

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