小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Android自學歷程

 昵稱10504424 2015-09-02

安裝

在使用OkHttp前,我們需要先導入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塊包裹她。

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

 

 

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

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

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

復制代碼
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();
}
復制代碼

 

 

6.測試Code!

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

 

7.Fix issue

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

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

復制代碼
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();
                }
        }
});
復制代碼

 

 

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

<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

 

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多