我对Feign客户有问题。我只需要发送一个文件,并且我不想使用多部分MIME类型(因为我认为一个文件不是必需的)。
我可以通过创建编码器到字节数组来做到这一点,但是我想使用一些流。

如何编写Feign编码器,该编码器将接受一些Java流并将其发送而不会将文件数据缓冲到内存中。 Feign客户端甚至可以进行这种二进制传输吗?

我看到了一些使用MultiPartFile的示例,该示例使用了“ multipart / form-data”,但是我不想使用multipart。

可以编写这样的Feign编码器吗?

更新
Feign是否有可能发送二进制数据而无需将数据缓冲到字节数组中。根据this,事实并非如此。

最佳答案

这实际上很简单。只需使用byte[]作为参数。

public interface PostAPI {
    @RequestLine("POST /post")
    @Headers({
            "Content-Type: application/octet-stream",
            "Accept: text/plain"
    })
    String length(byte[] blob);
}

我选择一个String作为返回值,但是您可以返回任意内容。

10-08 19:40