igao视频网站_久久99精品久久久久久不卡_91精品国产自产91精品_午夜亚洲影视_成人羞羞国产免费软件动漫_男人插女人免费

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

2018/3/10 18:21:11 人評論 次瀏覽 分類:PLC應(yīng)用  文章地址:http://m.jinzhengkj.com.cn/tech/1832.html

如何在Android  Okhttp框架以文件形式上傳圖片?網(wǎng)友“聽海”寫了這段代碼,昌暉儀表在此分享給大家。
計(jì)算機(jī)編程

以Post為例
public Observable<String> postImageview(final String url, final  MultipartBody requestBody){
        //創(chuàng)建被觀察者
        Observable<String> observable = Observable.create(new Observable.OnSubscribe<String>(){
            @Override
            public void call(Subscriber<? super String> subscriber) {
                final Subscriber mSubscriber=subscriber;
                //沒有取消訂閱的時候
                if(!mSubscriber.isUnsubscribed()){
                    //構(gòu)建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;
    }

 

調(diào)用

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);
                    }
                };


                /**
                 * 訂閱者關(guān)聯(lián)被觀察者
                 * Schedulers.io()說明是輸入輸出的計(jì)劃任務(wù)
                 * AndroidSchedulers.mainThread()說明訂閱者是中ui主線程中執(zhí)行
                 * */


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

共有訪客發(fā)表了評論 網(wǎng)友評論

  客戶姓名:
郵箱或QQ:
驗(yàn)證碼: 看不清楚?
主站蜘蛛池模板: 不卡一不卡二不卡三 | 护士的奶又大又粗又大 | 黑人性狂欢在线播放 | 毛片aaaaaaa| www.一级片 | 日韩在线视频网址 | 欧美黑人性受 | 欧美熟妇一区二区三区蜜桃视频 | 国产三级一区二区 | 超鹏97国语| 操操操爱爱爱 | 久久久久夜色精品国产老牛91 | 亚洲综合无码一区二区加勒此 | 91精品国产二区在线看大桥未久 | 国产精品一区二区免费不卡 | 欧美成年人影院 | 国产在线高清视频无码不卡互動交流 | 久久久久久久尹人综合网亚洲 | 欧美一区内射最近更新 | 91成色 | 欧美激情视频二区 | 成人久久久久久 | 成年人免费视频网站 | 国产特色特黄的视频免费观看 | 99久久免费精品国产男女高不卡 | 久久一级淫片 | 韩国午夜理论a三级在线观看 | baoyu116.永久免费视频 | 国产精品久久久久久亚洲AV | 6699久久久久久久77777'7 亚洲日韩中文第一精品 | 囯产av无码片毛片一级 | 久久久a | 亚洲AV无码不卡私人影院 | 热99re久久国免费超精品首页 | 波多野结衣一区二区免费高清 | 美女131爽爽爽做爰视频 | avtom影院永久入口满18 | 夜夜躁狠狠躁日日躁麻豆护士 | 怦然心动2在线观看免费高清 | 懂色av一区二区三区观看 | 国内精品美女A∨在线播放 国产做a爱一级久久 |