retrofit 上传文件

来源:互联网 发布:划线公式全套源码 编辑:程序博客网 时间:2024/06/13 05:08
{        //上传文件    String innerSDCardPath = getInnerSDCardPath();    Log.e("sdpath",innerSDCardPath);    HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();    httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);    OkHttpClient okHttpClient = new OkHttpClient.Builder()            .addInterceptor(new LogInterceptor())            .build();    Retrofit retrofit = new Retrofit.Builder()            .client(okHttpClient)            .addConverterFactory(GsonConverterFactory.create())            .baseUrl("http://120.27.23.105/file/")            .build();    postf postf = retrofit.create(postf.class);    File file = new File("storage/emulated/0/qqqqq.jpg");    //创建文件体    RequestBody requestFile =            RequestBody.create(MediaType.parse("multipart/form-data"), file);   MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), requestFile);    Call<postfile> getpostfile = postf.getpostfile("93",body);    getpostfile.enqueue(new Callback<postfile>() {        @Override        public void onResponse(Call<postfile> call, Response<postfile> response) {                    Toast.makeText(retrofitactvity.this,"ssss",Toast.LENGTH_SHORT).show();        }        @Override        public void onFailure(Call<postfile> call, Throwable t) {            String s = t.toString();            Log.e("ttt",s);        }    });}
接口
@Multipart@POST("upload")Call<postfile> getpostfile(@Query("uid") String uid,                           @Part MultipartBody.Part fiel);
/** * 获取内置SD卡路径 * @return */public String getInnerSDCardPath() {    return Environment.getExternalStorageDirectory().getPath();}
原创粉丝点击