+-

我试图做一个POST,身体是一个InputStream,有这样的东西:
@POST("/build")
@Headers("Content-Type: application/tar")
Response build(@Query("t") String tag,
@Query("q") boolean quiet,
@Query("nocache") boolean nocache,
@Body TypedInput inputStream);
在这种情况下,InputStream来自压缩的tar文件.
POST一个InputStream的正确方法是什么?
最佳答案
TypedInput是InputStream的包装器,它包含用于发出请求的长度和内容类型等元数据.您需要做的就是提供一个实现TypedInput的类,该类传递您的输入流.
class TarFileInput implements TypedInput {
@Override public InputStream in() {
return /*your input stream here*/;
}
// other methods...
}
请确保根据流式传输内容的文件类型为length()和mimeType()传递适当的返回值.
在调用构建方法时,您还可以选择将其作为匿名实现传递.
点击查看更多相关文章
转载注明原文:rest – 如何将InputStream作为Retrofit中请求的主体进行POST? - 乐贴网