神马电影_午夜神马_午夜电影_神马午夜_欧美日韩中文字幕_欧美日韩在线播放_欧美日韩精品_中文字幕观看_欧美日韩中文字幕_欧美中文字幕视频_欧美日韩精品_欧美成人在线视频_欧美乱人伦中文字幕在线不卡_日韩免费高清专区_久久久久亚州?Ⅴ无码专区首_精品国偷自产在线不卡短视频_尹人久久大香找蕉综合影院中文字幕免费在线观看_欧美激情综合色综合啪啪五月

廣告招募

當前位置:歐亞貿易網 > 技術中心 > 所有分類

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

2023年01月28日 09:36:43      來源:云南昌暉儀表制造有限公司 >> 進入該公司展臺      閱讀量:24

分享:

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

以Post為例
public Observable postImageview(final String url, final  MultipartBody requestBody){
        //創建被觀察者
        Observable observable = Observable.create(new Observable.OnSubscribe(){
            @Override
            public void call(Subscriber 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 mSubscriber=new Subscriber(){
                    @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);
            }
        }
    }

版權與免責聲明:
1.凡本網注明"來源:歐亞貿易網"的所有作品,版權均屬于歐亞貿易網,轉載請必須注明歐亞貿易網。違反者本網將追究相關法律責任。
2.企業發布的公司新聞、技術文章、資料下載等內容,如涉及侵權、違規遭投訴的,一律由發布企業自行承擔責任,本網有權刪除內容并追溯責任。
3.本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。 4.如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系。

色婷婷成人做爰A片免费看网站| 中文字幕av久久波多野结| 中文字幕人成乱码熟女香港| 久久综合久色欧美综合狠狠| 中国白嫩丰满人妻VIDEOS| 国产精品久久久久久亚洲毛片| 巜隔壁练瑜伽的人妻| 亚洲精品一区二区三区在线|