国内精品一区二区三区四区视频-国产成人激情视频在线免费看-av中文字幕一区人妻-精精国产XXXX视频第一次

跟我學編程:Android Okhttp框架以文件形式上傳圖片代碼

2018/3/10 18:21:11 人評論 次瀏覽 分類:PLC應用  文章地址:http://www.yigongchang99.com/tech/1832.html

如何在Android  Okhttp框架以文件形式上傳圖片?網友“聽?!睂懥诉@段代碼,昌暉儀表在此分享給大家。
計算機編程

以Post為例
public Observable<String> postImageview(final String url, final  MultipartBody requestBody){
        //創建被觀察者
        Observable<String> observable = Observable.create(new Observable.OnSubscribe<String>(){
            @Override
            public void call(Subscriber<? super String> subscriber) {
                final Subscriber mSubscriber=subscriber;
                //沒有取消訂閱的時候
                if(!mSubscriber.isUnsubscribed()){
                    //構建post請求
                    Request request=null;
                    String cookie=CliniciansApplication.getOkhttpCookie();
                    if(!BooleanUtils.isEmpty(cookie)){
                        request=new Request.Builder()
                                .addHeader("cookie",cookie)
                                .url(url)
                                .post(requestBody)
                                .build();
                    }else{
                        request=new Request.Builder()
                                .url(url)
                                .post(requestBody)
                                .build();
                    }
                    if(mOkHttpClient!=null){
                        mOkHttpClient.newCall(request).enqueue(new Callback() {
                            @Override
                            public void onFailure(Call call, IOException e) {
                                //通知訂閱者的錯誤信息
                                mSubscriber.onError(e);
                            }


                            @Override
                            public void onResponse(Call call, Response response) throws IOException {
                                if(null!=response){//response 不為空
                                    if(response.isSuccessful()){//response 請求成功
                                        //通知訂閱者的成功信息
                                        mSubscriber.onNext(response.body().string());
                                    }else{//response 請求失敗
                                        //通知訂閱者的錯誤信息
                                        IOException IOExceptionx=new IOException();
                                        mSubscriber.onError(IOExceptionx);
                                    }
                                }else{//response 為空
                                    //通知訂閱者的錯誤信息
                                    IOException IOExceptionx=new IOException();
                                    mSubscriber.onError(IOExceptionx);
                                }
                                //通知完畢
                                mSubscriber.onCompleted();
                            }
                        });
                    }
                }
            }
        });
        return observable;
    }

 

調用

private void uploadAva(final String posturl,final File file,final String path){
        if((null!=mRxAndroidOkhttp)&&(null!=file)){
            showProgressDialogs();
            MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);
            builder.addFormDataPart("files", file.getName(), RequestBody.create(MediaType.parse("image/png"), file));
            builder.addFormDataPart("sePath","avatar");
            MultipartBody requestBody = builder.build();
            //observable定義被觀察者
            mObservable=mRxAndroidOkhttp.postImageview(posturl,requestBody);
            if(null!=mObservable){
                //定義觀察者
                Subscriber<String> mSubscriber=new Subscriber<String>(){
                    @Override
                    public void onCompleted() {


                    }


                    @Override
                    public void onError(Throwable e) {
                        dismissProgressDialogs();
                        toast.showToast(StringConstant.errorstate1);
                    }


                    @Override
                    public void onNext(String s) {
                        parseAva(s,path);
                    }
                };


                /**
                 * 訂閱者關聯被觀察者
                 * Schedulers.io()說明是輸入輸出的計劃任務
                 * AndroidSchedulers.mainThread()說明訂閱者是中ui主線程中執行
                 * */


                mObservable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(mSubscriber);
            }
        }
    }

共有訪客發表了評論 網友評論

  客戶姓名:
郵箱或QQ:
驗證碼: 看不清楚?
主站蜘蛛池模板: 中文字幕av一区中文字幕天堂| 五月婷婷综合免费视频观看| 欧美1区2区3区爱爱| 亚洲欧美日韩综合久久亚洲| 少妇人妻精品视频一区二区三区| 欧美日本亚洲青青草原| 一区二区三区日本人妻| 亚洲一区二区三区成人| 中文有码第一页在线播放| 日韩手机在线视频中文字幕| 欧美一区二区三区裸体| 日韩精品人妻一区一区三区| 丝袜美腿中文字幕av| 欧美熟妇精品久久久久| 日韩精品在线免费观看视频| 在线观看国产日韩精品| 黄片男的插女的免费视频| 免费的黄片国产一区二区| 六月丁香婷婷久久狠狠| 男人天堂网av在线播放| 午夜精品一区二区三区香蕉片| 青青草国产制服丝袜美腿| 中文字幕精品视频在线看| 午夜在线不卡精品国产| 老司机福利精品在线视频| 日韩不卡在线一区二区| 一区二区三区婷婷月色| 黄片中文字幕免费观看| 欧美黄色精品一区二区| 人妻潮喷中出日韩精品中文字幕| 亚洲av美日韩av丝袜美腿护士| 日韩一二三区综合av| 国产亚洲欧美精品综合| 欧美一区二区三区久久久精品| 国产精品亚洲综合一区二区三区 | 成人午夜人妻一区二区三区| 国产精品福利资源在线| 国产精品一区二区成人| 中文字幕视频国产精品| 天堂一区二区三区在线等| 欧美日韩午夜激情在线|