Okhttp3 带参数文件上传~重复造轮子中

Okhttp3 带参数文件上传~重复造轮子中

实用帖,不罗嗦。下面贴代码

/**
     * 带参数文件上传
     * @param path 网址
     * @param params  key - value数据
     * @param files  key - file路径
     * @param callback    自定义的Callback 你用你的就好
     */
    public static void post_file(String path,
                                 HashMap params,HashMap files, Callback callback){

        MultipartBody.Builder multipartBuider = new MultipartBody.Builder();
        multipartBuider.setType(MultipartBody.FORM);

        if (params!=null&¶ms.size()>0){
            for (Map.Entry entry :params.entrySet()){
                multipartBuider.addFormDataPart(entry.getKey(),String.valueOf(entry.getValue()));
            }
        }

        if (files!=null&&files.size()>0){
            for (Map.Entry entry: files.entrySet()){
                File file = new File(entry.getValue());
                RequestBody fileBody = RequestBody.create(MediaType.parse("image/png") , file);
                multipartBuider.addFormDataPart(String.valueOf(entry.getKey()),file.getName(),fileBody);
            }
        }

        Request request=new Request.Builder().url(path).post(multipartBuider.build())
                .build();


        Call call = okHttpClient.newCall(request);

        call.enqueue(callback);

    }

你可能感兴趣的:(api,okhttp3)