我对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作为返回值,但是您可以返回任意内容。