首页 > 解决方案 > 无法使用多部分请求帖子

问题描述

我正在使用 Multipart 执行帖子类型请求。问题是因为我不断收到两个错误

1) 500

2) 422 无法处理的实体

邮递员一切正常 在此处输入图像描述

Api 只接受音乐文件。所以我添加了一个默认文件,以免不断选择新文件

RequestBody body = 
             RequestBody.create(MediaType.parse("audio/type"),file);
MultipartBody.Builder builder = new 
MultipartBody.Builder().setType(MultipartBody.FORM);
builder.addPart(body);
GeoService.saveSound(builder.build(), SoundResponseCallback,  
getAuthToken());

和我的界面

@Multipart
@POST("audios")
Call<SoundResponse> saveSound(
          @Part("audio[file] ; filename=audio.mp3")RequestBody file,
          @Query("auth_token") String authToken);

我将不胜感激任何帮助。

我发现它通过retrofit2作为对象发送文件到服务器

标签: androidretrofitmultipart

解决方案


您必须在 API 中发送 MultipartBody.Part 类型的参数

尝试这个:

@Multipart
@POST("audios")
Call<SoundResponse> saveSound(
      @Part MultipartBody.Part file,
      @Query("auth_token") String authToken);

推荐阅读