我想将音频文件发送到retrofit2
的服务器。我按照this教程,但文件不是服务器接受的格式。根据本教程,我尝试了以下内容:
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part audio = MultipartBody.Part.createFormData("file", "file", requestBody);
和界面:
@Headers("Content-Type: application/json")
@Multipart
@POST("app/")
Call<JResponse> upload(@Part("file") RequestBody file);
但是,file:
属性未发送。 (如果我将@Part
更改为@Body
,那么它就存在,但还有另一个问题)
我想知道如何以下列格式发送文件?我应该将音频文件转换为base64
格式吗?
{ 'file' : audio_file }
答案 0 :(得分:5)
要查找如何通过 Retroit 将文件发送到服务器,以下步骤可能会解决您的问题:
1-安装PostMan。
2-在PostMan中选择10
并粘贴Post
,然后转到URL
标签,然后选择Body
。
3-在form-data
的部分中写入服务器文件名,在Key
的部件集中键入文件并上传所需文件。
4-点击发送,然后点击生成代码。
5-现在你有类似的事情:
6-现在只需一步即可转到您的改造服务并粘贴信息(例如我想上传Value
):
audio.mp3
请求正文如下:
@Multipart
@POST("app/")
Call<JResponse> upload(@Part("file\"; filename=\"audio.mp3\" ") RequestBody file);
使用this模式并将其发送至:
File file = new File("YOUR_PATH");
RequestBody temp = RequestBody.create(MediaType.parse("multipart/form-data"), file);