OkHttp+Stetho+Chrome調試android網絡部分(原創)

android網絡調試一直是一個比較麻煩的部分,由於在不一樣序列的請求中,返回的數據會有不一樣的變化,若是能像web開發同樣使用調試功能查看頁面的訪問數據該是多麼美好的事情!java

很幸運的是,如今Android開發也能夠實時監聽網絡訪問了,可以看到你的發送數據信息,也可以看到返回數據信息。
如圖:
 
點擊每一個請求會看到詳細頁面,能夠查看請求的詳情,如圖:
 
若是要達到上面的效果,你須要改造你的網絡請求模塊,使用Chrome瀏覽器和android程序之間的中間件來鏈接,這就是本篇要介紹的主題:
OkHttp+Stetho+Chrome進行網絡調試。
 
okhttp是Square的一款很是優秀的網絡訪問框架,它的使用很是簡單,能夠經過github去獲取其源代碼:
 
Stetho則是facebook開發的一款鏈接android程序和Chrome開發者工具的一個橋樑:
 
使用方式:
1.工程依賴包以下:
commons-cli-1.2.jar
okhttp-2.3.0.jar
okio-1.3.0.jar
stetho-1.0.1.jar
stetho-okhttp-1.0.1.jar
 
2.須要繼承Application類來初始化Stetho工具。
package com.peiandsky.chromedebug;

import android.app.Application;

import com.facebook.stetho.Stetho;

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Stetho.initialize(Stetho
                .newInitializerBuilder(this)
                .enableDumpapp(Stetho.defaultDumperPluginsProvider(this))
                .enableWebKitInspector(
                        Stetho.defaultInspectorModulesProvider(this)).build());
    }
}

 

 
在AndroidManifest.xml須要配置爲程序的app:
 
3.使用okhttp訪問的代碼以下:
package com.peiandsky.chromedebug;

import java.io.IOException;

import com.facebook.stetho.okhttp.StethoInterceptor;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;

public class Net {
    private static final boolean debug = true;
    private static OkHttpClient okHttpClient = new OkHttpClient();
    static {
        if (debug) {
            okHttpClient.networkInterceptors().add(new StethoInterceptor());
        }
    }

    public static final void askBaidu() {
        Request request = new Request.Builder().url("http://www.baidu.com")
                .build();
        try {
            Response response = okHttpClient.newCall(request).execute();
            String reslut = response.body().string();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

 
運行程序後就會發現,在chrome中的網址欄輸入: chrome://inspect/
 
能夠查看如圖:
 
點擊藍色的inspect的鏈接,既能夠看到本文開頭的調試畫面。
相關文章
相關標籤/搜索