如何使用Retrofit库在Android下载文件?

我需要在我的应用程序中使用Retrofit库下载所有类型的文件(二进制文件,图像,文本等).网上的所有示例都使用HTML GET方法.我需要使用POST来防止自动缓存.

我的问题是如何在Retrofit中使用POST方法下载文件?

解决方法:

使用@Streaming

异步

编辑1

//On your api interface
@POST("path/to/your/resource")
@Streaming
void apiRequest(Callback<POJO> callback);

restAdapter.apiRequest(new Callback<POJO>() {
        @Override
        public void success(POJO pojo, Response response) {
            try {
                //you can now get your file in the InputStream
                InputStream is = response.getBody().in();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        @Override
        public void failure(RetrofitError error) {

        }
    });

同步

//On your api interface
@POST("path/to/your/resource")
@Streaming
Response apiRequest();

Response response = restAdapter.apiRequest();

try {
    //you can now get your file in the InputStream
    InputStream is = response.getBody().in();
} catch (IOException e) {
    e.printStackTrace();
}
上一篇:Android和Java的REST客户端改造不会终止


下一篇:php – 改进2在Postman和Localhost中工作但不在亚马逊AWS Live Server上工作