android - 使用 Multipart Retrofit 和 java Rest api 上传 Android 文件
问题描述
你能帮我用后端java rest api(mysql db)上传Multipart Retrofit文件吗?我尝试使用下面的代码,但它不工作..
改造部分
活动.java
private void checkingst(File file){
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"),file);
MultipartBody.Part body = MultipartBody.Part.createFormData("file",file.getName(),requestBody);
Call<String> chkst = FarmOwnerApi.getServices().uploadFile(body);
chkst.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
if(!response.isSuccessful())
{
return;
}
Toast.makeText(getApplicationContext(),"Uploaded",Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Toast.makeText(getApplicationContext(),"Failed",Toast.LENGTH_SHORT).show();
}
});
}
FarmOwnerApi.java
public static FarmOwnerService farmOwnerServices = null;
private static final String Base_URL = "http://192.168.1.6:8080/myfarm/farmowner/";
public static FarmOwnerService getServices()
{
if(farmOwnerServices==null)
{
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Base_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
farmOwnerServices = retrofit.create(FarmOwnerService.class);
}
return farmOwnerServices;
}
public interface FarmOwnerService {
@Multipart
@POST("uploadFile")
Call<String> uploadFile(@Part MultipartBody.Part file);
后端 - Java Rest API
@RequestMapping(value="/uploadFile" )
public String uploadFile(@RequestParam("file") MultipartFile file) {
解决方案
推荐阅读
- javascript - 在移动/平板电脑设备上选择子项目后,NavDropdown 未打开
- excel - Excel CSV 日期格式
- r - ggplot中不同宽度的堆积条形图
- vba - 如何使用 VBA 在 Microsoft Project 中自动创建摘要和子任务
- java - 从 php 函数到 Java 的 base64_encode() 不返回相同的数据
- c# - 获取 ajax 成功数据的某些属性并将其绑定到视图
- sql-server - SQL 联合的替代方案
- php - 将带有css的html添加到div而不编辑主css
- django - 使用存储的数据启动模板表单
- asp.net - 仅使用没有 Kestrel 和 Http.sys 的 IIS 托管 NET Core