+-
rest – 如何将InputStream作为Retrofit中请求的主体进行POST?
我试图做一个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? - 乐贴网