Retrofit 2 Multipart仅发送图像而不发送图像和数据

时间:2018-02-09 17:01:36

标签: java android http retrofit retrofit2

我正在使用Retrofit 2开发一个应用程序来获取和发送数据到API。当我尝试使用Multipart上传图像时,API日志表明它没有收到我发送给它的所有数据。这是我的代码:

服务接口方法:

    @Multipart
    @POST("photoUpload")
    Call<JsonObject> uploadPhoto(@Header("Accept") String acceptType,
                                     @Header("Authorization") String token, @Part("param1") okhttp3.RequestBody value1,
                                     @Part("param2") okhttp3.RequestBody value2,
                                     @Part("param3") okhttp3.RequestBody value3,
                                     @Part MultipartBody.Part photo);

上传图片功能:

service.uploadPhoto("application/json",
                            token, okhttp3.RequestBody.create(MediaType.parse("multipart/form-data"),
                                    String.valueOf(value1)),
                            okhttp3.RequestBody.create(MediaType.parse("multipart/form-data"), value2),
                            okhttp3.RequestBody.create(MediaType.parse("multipart/form-data"),
                                    String.valueOf(value3),
                            getImage()).enqueue(...);

getImage()函数:

private MultipartBody.Part getImage(File file){
        okhttp3.RequestBody body = okhttp3.RequestBody.create(MediaType.parse("multipart/form-data"), file);
        return MultipartBody.Part.createFormData("image", file.getName(), body);
    }

0 个答案:

没有答案