视频二区制服丝袜人妻欧美,亚洲欧美日韩中文高清WWW777 ,丰满少妇女人A毛片视频,国产成人精品日本亚洲11,亚洲国产成人手机在线电影 ,午夜福利一区二区,中文字幕乱码一区二区免费,国产精品高清一区二区不卡

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

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

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

      以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()){
                          //構建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);
                          }
                      };


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


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

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

        客戶姓名:
      郵箱或QQ:
      驗證碼: 看不清楚?