okhttp上传文件时携带参数

    private void uplaodFile2(final File file) {
        String token = PreferenceUtils.getString(mainActivity,"token" , null);
        MultipartBody.Part tokenPart = MultipartBody.Part.createFormData("token", token);
        RequestBody body = RequestBody.create(MediaType.parse("multipart/form-data"), file);
        MultipartBody.Part categoryId = MultipartBody.Part.createFormData("categoryId", categoryId1+"");
        MultipartBody.Part uploadUser = MultipartBody.Part.createFormData("uploadUser", PreferenceUtils.getString(mainActivity,"yhxm"));
        MultipartBody.Part departmentId = MultipartBody.Part.createFormData("departmentId", "");
        MultipartBody.Part jgdm = MultipartBody.Part.createFormData("jgdm", PreferenceUtils.getString(mainActivity,"jgdm"));
        MultipartBody.Part yhxxid = MultipartBody.Part.createFormData("yhxxid", PreferenceUtils.getLong(mainActivity , "yhxxid" , 0)+"");

        MultipartBody.Part part = MultipartBody.Part.createFormData("fileName", file.getName(), new ProgressRequestBody(body, new UploadProgressListener() {
            @Override
            public void onProgress(long currentBytesCount, long totalBytesCount) {
                progressBar.setVisibility(View.VISIBLE);
                progressBar.setMax((int) totalBytesCount);
                progressBar.setProgress((int) currentBytesCount);
            }
        }));

        UploadFileService uploadFileService = OkHttpUtils.getRetrofit().create(UploadFileService.class);
        uploadFileService.uploadFileAndParams(part,categoryId , uploadUser , departmentId , jgdm,tokenPart,yhxxid).subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber>() {
                    @Override
                    public void onCompleted() {
                        progressBar.setVisibility(View.GONE);
                    }

                    @Override
                    public void onError(Throwable e) {
                        progressBar.setVisibility(View.GONE);
                        DialogUtils.showDialog2(mainActivity, "温馨提示", null, "上传失败!是否重新提交?",new DialogOnClickListenner() {
                     @Override
                     public void btnConfirmClick(Dialog dialog) {
                        dialog.dismiss();
                                uplaodFile2(file);
                     }

                     @Override
                     public void btnCancelClick(Dialog dialog) {
                        dialog.dismiss();
                     }
                  });
                    }

                    @Override
                    public void onNext(ResponseResult stringResponseResult) {
                        switch (stringResponseResult.getResult()){
                            case 1:
                                ToastUtils.showToast(mainActivity , "上传成功");
                                break;
                            case 2:
                                ToastUtils.showToast(mainActivity , "参数列表不能为空");
                                break;
                            case 0:
                                ToastUtils.showToast(mainActivity , "上传失败");
                                break;
                            case -1:
                                ToastUtils.showToast(mainActivity , "服务器异常");
                                break;
                            case -2:
                                startActivityForResult(new Intent(mainActivity , UserLoginAtivity.class),106);
                                break;
                        }
                    }
                });

    }

你可能感兴趣的:(android,java语言,java)