@Override public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations, Retrofit retrofit) { if (type == ResponseBody.class) { return Utils.isAnnotationPresent(annotations, Streaming.class) ? StreamingResponseBodyConverter.INSTANCE : BufferingResponseBodyConverter.INSTANCE; } if (type == Void.class) { return VoidResponseBodyConverter.INSTANCE; } return null; }
/** * 下载文件 * @param url * @param headerMap * @param txtParamMap * @return */ @Streaming @GET Call<ResponseBody> executeDownload( @Url String url, @HeaderMap Map<String, String> headerMap, @QueryMap Map<String, String> txtParamMap );
@Override public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations, Retrofit retrofit) { if (type == ResponseBody.class) { if (Utils.isAnnotationPresent(annotations, Streaming.class)) { return StreamingResponseBodyConverter.INSTANCE; } return BufferingResponseBodyConverter.INSTANCE; } if (type == Void.class) { return VoidResponseBodyConverter.INSTANCE; } return null; }
@Override public CallAdapter<?> get(Type returnType, Annotation[] annotations, final Retrofit retrofit) { if (returnType != Download.Builder.class) { return null; } if (!Util.isAnnotationPresent(annotations, Streaming.class)) { throw new IllegalArgumentException("Download.Builder requires @Streaming."); } return new CallAdapter<Download.Builder>() { @Override public Type responseType() { return ResponseBody.class; } @SuppressWarnings("unchecked") @Override public <R> Download.Builder adapt(Call<R> call) { Download.Builder builder = new Download.Builder((Call<ResponseBody>) call); Executor callbackExecutor = retrofit.callbackExecutor(); if (callbackExecutor != null) { builder.callbackExecutor(callbackExecutor); } return builder; } }; }
@Streaming @GET Call<ResponseBody> downloadFile(@Url String fileUrl);
@GET @Streaming Flowable<Response<ResponseBody>> download(@Header("Range") String range, @Url String url);
/** download */ @Streaming @Headers({ "User-Agent: androidProgram" }) @GET("DownloadServlet") Call<ResponseBody> requestFileDataDownload(@QueryMap Map<String, String> parameters);
@Streaming @POST("statuses/filter.json") Observable<ResponseBody> getStreamingStatuses(@Query("track") String track, @Query("filter_level") String filterLevel);
@Streaming/*大文件需要加入这个判断,防止下载过程中写入到内存中*/ @GET Observable<ResponseBody> download(@Header("RANGE") String start, @Url String url);
@Streaming @GET Call<ResponseBody> download(@Url String url, @HeaderMap Map<String,String> headerMap);
@GET("{handle}") @Streaming Call<ResponseBody> get( @Path("handle") String handle, @Query("policy") String policy, @Query("signature") String signature);
@Streaming @GET("{tasks}/{handle}") Call<ResponseBody> transform( @Path("tasks") String tasks, @Path("handle") String handle);
@Streaming @GET("{key}/{tasks}/{url}") Call<ResponseBody> transformExt( @Path("key") String key, @Path("tasks") String tasks, @Path("url") String url);
@Streaming @GET() Observable<ResponseBody> downFile(@Url() String url, @QueryMap Map<String, String> maps);
@Streaming @GET Flowable<ResponseBody> downloadFile(@Url String fileUrl);
@Streaming @GET Observable<ResponseBody> downloadFile(@Url String fileUrl);
@Streaming @GET Call<ResponseBody> downloadDouFile(@Url String fileUrl);
@GET @Streaming Observable<ResponseBody> download(@Url String url);
@Streaming @GET Call<ResponseBody> download(@Url String url, @QueryMap Map<String, Object> params);
@Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.appservice.WebApps getWebSiteContainerLogs" }) @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/containerlogs") @Streaming Observable<Response<ResponseBody>> getWebSiteContainerLogs(@Path("resourceGroupName") String resourceGroupName, @Path("name") String name, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
@Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.appservice.WebApps getWebSiteContainerLogsZip" }) @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/containerlogs/zip/download") @Streaming Observable<Response<ResponseBody>> getWebSiteContainerLogsZip(@Path("resourceGroupName") String resourceGroupName, @Path("name") String name, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
@Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.appservice.WebApps getInstanceProcessDump" }) @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/instances/{instanceId}/processes/{processId}/dump") @Streaming Observable<Response<ResponseBody>> getInstanceProcessDump(@Path("resourceGroupName") String resourceGroupName, @Path("name") String name, @Path("processId") String processId, @Path("instanceId") String instanceId, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
@Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.appservice.WebApps getProcessDump" }) @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/processes/{processId}/dump") @Streaming Observable<Response<ResponseBody>> getProcessDump(@Path("resourceGroupName") String resourceGroupName, @Path("name") String name, @Path("processId") String processId, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
@Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.appservice.WebApps listPublishingProfileXmlWithSecrets" }) @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/publishxml") @Streaming Observable<Response<ResponseBody>> listPublishingProfileXmlWithSecrets(@Path("resourceGroupName") String resourceGroupName, @Path("name") String name, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Body CsmPublishingProfileOptions publishingProfileOptions, @Header("User-Agent") String userAgent);
@Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.appservice.WebApps getWebSiteContainerLogsSlot" }) @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/containerlogs") @Streaming Observable<Response<ResponseBody>> getWebSiteContainerLogsSlot(@Path("resourceGroupName") String resourceGroupName, @Path("name") String name, @Path("slot") String slot, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
@Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.appservice.WebApps getWebSiteContainerLogsZipSlot" }) @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/containerlogs/zip/download") @Streaming Observable<Response<ResponseBody>> getWebSiteContainerLogsZipSlot(@Path("resourceGroupName") String resourceGroupName, @Path("name") String name, @Path("slot") String slot, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
@Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.appservice.WebApps getInstanceProcessDumpSlot" }) @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/instances/{instanceId}/processes/{processId}/dump") @Streaming Observable<Response<ResponseBody>> getInstanceProcessDumpSlot(@Path("resourceGroupName") String resourceGroupName, @Path("name") String name, @Path("processId") String processId, @Path("slot") String slot, @Path("instanceId") String instanceId, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
@Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.appservice.WebApps getProcessDumpSlot" }) @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/processes/{processId}/dump") @Streaming Observable<Response<ResponseBody>> getProcessDumpSlot(@Path("resourceGroupName") String resourceGroupName, @Path("name") String name, @Path("processId") String processId, @Path("slot") String slot, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
@Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.appservice.WebApps listPublishingProfileXmlWithSecretsSlot" }) @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/publishxml") @Streaming Observable<Response<ResponseBody>> listPublishingProfileXmlWithSecretsSlot(@Path("resourceGroupName") String resourceGroupName, @Path("name") String name, @Path("slot") String slot, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Body CsmPublishingProfileOptions publishingProfileOptions, @Header("User-Agent") String userAgent);
@Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: fixtures.bodyfile.Files getFile" }) @GET("files/stream/nonempty") @Streaming Observable<Response<ResponseBody>> getFile();
@Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: fixtures.bodyfile.Files getFileLarge" }) @GET("files/stream/verylarge") @Streaming Observable<Response<ResponseBody>> getFileLarge();
@Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: fixtures.bodyfile.Files getEmptyFile" }) @GET("files/stream/empty") @Streaming Observable<Response<ResponseBody>> getEmptyFile();
@Multipart @POST("formdata/stream/uploadfile") @Streaming Observable<Response<ResponseBody>> uploadFile(@Part("fileContent") RequestBody fileContent, @Part("fileName") String fileName);
@Headers({ "Content-Type: application/octet-stream", "x-ms-logging-context: fixtures.bodyformdata.Formdatas uploadFileViaBody" }) @PUT("formdata/stream/uploadfile") @Streaming Observable<Response<ResponseBody>> uploadFileViaBody(@Body RequestBody fileContent);
@GET @Streaming Flowable<ResponseBody> downloadFile(@Url String url);
@GET @Streaming Flowable<ResponseBody> downloadFile(@Url String url, @Header("Range") String range);