通过 retrofit2 将文件作为对象发送到服务器
Send file to server via retrofit2 as object
我想将 音频文件 发送到 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 }
查找如何通过 Retroit 将文件发送到服务器,以下步骤可能会解决您的问题:
1- 安装 PostMan.
2- 在 PostMan select Post
中粘贴 URL
然后转到 Body
选项卡并选择 form-data
。
3- 在Key
的部分写服务器文件名,在Value
的部分设置类型为File并上传想要的文件。
4- 点击 发送 然后 生成代码 .
5- 现在你有如下内容:
6- 现在只需一步即可转到您的改造服务并粘贴信息,例如(在我的情况下,我想上传 audio.mp3
):
@Multipart
@POST("app/")
Call<JResponse> upload(@Part("file\"; filename=\"audio.mp3\" ") RequestBody file);
请求正文类似于:
File file = new File("YOUR_PATH");
RequestBody temp = RequestBody.create(MediaType.parse("multipart/form-data"), file);
使用 模式并发送:
ServiceHelper.getInstance().sendAudio(temp).enqueue(new Callback<JResponse>() {
@Override
public void onResponse(Call<JResponse> call, Response<JResponse> response) {
Log.e("test", "onResponse: tst");
}
@Override
public void onFailure(Call<JResponse> call, Throwable t) {
Log.e("test", "onResponse: tst");
}
});
我想将 音频文件 发送到 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 }
查找如何通过 Retroit 将文件发送到服务器,以下步骤可能会解决您的问题:
1- 安装 PostMan.
2- 在 PostMan select Post
中粘贴 URL
然后转到 Body
选项卡并选择 form-data
。
3- 在Key
的部分写服务器文件名,在Value
的部分设置类型为File并上传想要的文件。
4- 点击 发送 然后 生成代码 .
5- 现在你有如下内容:
6- 现在只需一步即可转到您的改造服务并粘贴信息,例如(在我的情况下,我想上传 audio.mp3
):
@Multipart
@POST("app/")
Call<JResponse> upload(@Part("file\"; filename=\"audio.mp3\" ") RequestBody file);
请求正文类似于:
File file = new File("YOUR_PATH");
RequestBody temp = RequestBody.create(MediaType.parse("multipart/form-data"), file);
使用
ServiceHelper.getInstance().sendAudio(temp).enqueue(new Callback<JResponse>() {
@Override
public void onResponse(Call<JResponse> call, Response<JResponse> response) {
Log.e("test", "onResponse: tst");
}
@Override
public void onFailure(Call<JResponse> call, Throwable t) {
Log.e("test", "onResponse: tst");
}
});