乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Android自學(xué)歷程

       昵稱10504424 2015-09-02

      安裝

      在使用OkHttp前,我們需要先導(dǎo)入OkHttp的第三方庫。

      我們可以在Github上找到她的項目地址: https://github.com/square/okhttp

      我們可以在Android Studio中使用Gradle, 最后效果如下:

            

             

      測試使用我們的OKHttp第三方庫

      1.第一步我們需要去創(chuàng)建一個 OKHttpClient 對象

      OkHttpClient okHttpClient = new OkHttpClient();

       

      2.下一步我們還需要一個 Request 對象,她可以已如下方式被創(chuàng)建

      Request request = new Request.Builder()
                                          .url(requestUrl)
                                          .build(); 

      requestUrl是一個字符串變量代表這個URL是為了JSON請求(The requestUrl is a String variable representing the Url for the JSON request.) 

      在這個測試中,我們將會使用如下的URl:http:///api/v1/random?format=json

       

      3.再下一步我們需要實例化一個 Call 對象

      Call call  = okHttpClient.newCall(request);

       

      Call對象會取走我們的 okHttpClient對象 和 我們的 request對象。

       

      4.在實例化Call對象后,我們現(xiàn)在可以 Execute(執(zhí)行)她。Executing一個Call后將會返回一個 Response,并且會拋出一個 IOException的異常,這就是為什么們會用一個try,catch塊包裹她。

      復(fù)制代碼
      try{
              Response response = call.execute();
      }catch (IOException e){
              e.printStackTrace();
      }
      復(fù)制代碼

       

       

      5.執(zhí)行完我們的Call后,我們需要通過使用 response.isSuccessful()來檢查Call對象是否執(zhí)行成功,

      通過response.isSuccessful()的返回值為true或者是false來判斷。

      這我們僅僅是一個測試,如果Call成功的話,我們將會通過Log來打印我們的response。

      復(fù)制代碼
      try{
              Response response = call.execute();
              if(response.isSuccessful()){
                      //The call was successful.print it to the log
                      Log.v("OKHttp",response.body().string());
              }
          }catch(IOException e){
              e.printStackTrace();
      }
      復(fù)制代碼

       

       

      6.測試Code!

      這是新手一個常見的錯誤。在Android中不允許任何網(wǎng)絡(luò)的交互在主線程中進行。It disallows it to force developers to use asynchronous callbacks.(能力有限這句話不敢強譯)。但是現(xiàn)在,我們的代碼看起來看起來十分的號好!下面我們來看看如何修復(fù)這個問題。

       

      7.Fix issue

      為了修補這個問題,我們只需要讓我們的Call執(zhí)行在非主線程內(nèi),所以利用一個 asynchronous callback(異步的callBack)。

      讓我們call異步的方法是通過調(diào)用我們Call對象的 enqueue()方法。

      復(fù)制代碼
      call.enqueue(new Callback()) {
              
              @Override
              public void onFailure( Request request, IOException e ) {
              
              }
              
              @Override
              public void OnResponse( Response response) throws IOException {
                      try {
                              if(response.isSuccessful()){
                                  //The call was successful. print it to the log
                                  log.v("OKHttp",response.body.string());
                               }
                      }catch (IOException e) {
                          e.printStackTrace();
                      }
              }
      });
      復(fù)制代碼

       

       

      8.在我們再次執(zhí)行我們的code之前,我們還需要再改一改。如果我們想要現(xiàn)在執(zhí)行她,我們可能還會接收到錯誤的提示,因為我們應(yīng)用的程序沒有得到相應(yīng)的相應(yīng)的網(wǎng)絡(luò)權(quán)限。所以我們需要再AndroidManifest.xml中添加應(yīng)用權(quán)限。

      <uses-permission android:name="android.permission.INTERNET"/>

       

       

      9.當我們執(zhí)行完code后,我們將接受到如下的log輸出:

       

      10.This means, we are now able to execute asynchronous network calls and use the data inside the callback method, when it is ready!

       

       

      寫完后,瞬間爽朗起來。雖然還有問題。

      譯文來自:https:///tutorial/android-tutorial-part-5-using-okhttp/

       

       

      http://www./android-basic

       

      https://github.com/square/okhttp/wiki/Recipes

       

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多