改造上传任何文件

时间:2017-04-01 11:54:24

标签: android retrofit

我正在尝试上传文件,我这样做。

  

@POST("News/Article/Add")
        Call<User> addNews(@Header("api_key") String auth,
                            @Query(encoded = true, value = "title") String title,
                            @Body RequestBody file
        );
File file = new File(uri1.getPath());
                               RequestBody file1 = RequestBody.create(MediaType.parse("file/*"), file);
Call call = App.addNews(AddNewsActivity.this).addNews(apiKey,inputTitle.getText().toString(), file1)

使用compile&#39; com.squareup.retrofit2:retrofit:2.1.0&#39;

我注意到第一个错误,我需要将请求者发送为&#34; contentFile&#34;。正如你在下面看到的那样,下面的一个可以工作,但只适用于images.I不想指定任何格式(如png)。按原样上传文件。

  

RequestBody requestBody = new MultipartBody.Builder()
>                                 .setType(MultipartBody.FORM)
>                                 .addFormDataPart("contentFile", UUID.randomUUID() + ".png",
>                                         RequestBody.create(MEDIA_TYPE_PNG, f100)).build();

1 个答案:

答案 0 :(得分:0)

您可以动态分配媒体类型:

 MediaType.parse(getContentResolver().getType(fileUri))