通过改造上传文件

时间:2016-06-10 11:23:56

标签: java android file upload retrofit

我尝试过使用API My API

和Java代码

public interface UploadAPI {
    @Multipart
    @POST("books")

    Call<AddBookResult> uploadBook(
        @Part MultipartBody.Part audios,
        @Part("image") RequestBody image,
        @Part("audio_names") List<String> audio_names,
        @Part("video_names") List<String> video_names,
        @Part("video_urls") List<String> video_urls,
        @Part("preview") RequestBody preview,
        @Part("hot") String hotParam,
        @Part("new") String newParam,
        @Part("coming") String comingParam,
        @Part("sale_offs") List<String> sale_offs,
        @Part("author") String author,
        @Part("publisher") String publisher,
        @Part("categories") List<String> categories,
        @Part("name") String name,
        @Part("price") String price
    );
}

调用API

Code Java Call API

反响的结果  内部服务器错误 :(

1 个答案:

答案 0 :(得分:0)

首先,内部服务器错误(状态代码500)表示您的后端存在某种问题,或者您的API无法找到被叫端点控制器的路径。

我不确定您的后端是如何配置的,但我认为这可能是路径问题,请尝试在图书之前在请求声明中添加“/”

public interface UploadAPI {
    @Multipart
    @POST("/books") //here you have to put path to your controller

    Call<AddBookResult> uploadBook(
        @Part MultipartBody.Part audios,
        @Part("image") RequestBody image,
        @Part("audio_names") List<String> audio_names,
        @Part("video_names") List<String> video_names,
        @Part("video_urls") List<String> video_urls,
        @Part("preview") RequestBody preview,
        @Part("hot") String hotParam,
        @Part("new") String newParam,
        @Part("coming") String comingParam,
        @Part("sale_offs") List<String> sale_offs,
        @Part("author") String author,
        @Part("publisher") String publisher,
        @Part("categories") List<String> categories,
        @Part("name") String name,
        @Part("price") String price
    );
}

如果这不能解决您的问题,请发布您的请求的详细日志,或者如果您想要带有进度条的图片上传的完整工作示例,请查看此gist