okhttp上传文件时携带参数

22 篇文章 0 订阅
11 篇文章 0 订阅
    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<ResponseResult<String>>() {
                    @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<String> 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;
                        }
                    }
                });

    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值