首页 > 解决方案 > 使用 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) {

标签: androidretrofitrestmultipartfile

解决方案


推荐阅读