OkHttp结合Stetho调试

Posted by on April 20, 2017
  • Stetho地址:http://facebook.github.io/stetho/
  • 我使用的OkHttp2.7的版本,所以和3.0导入的依赖不一样
  • 如果是OkHttp3.0导入一下库:

       dependencies {
          compile 'com.facebook.stetho:stetho-okhttp3:1.5.0'
        }
    
  • 如果是OkHttp3.0以下导入下库:

       dependencies {
         compile 'com.facebook.stetho:stetho-okhttp:1.5.0'
       }
    
  • 导入完成之后我们在我们的OkHttp中这种写:
private static OkHttpClientManager mInstance;
    public static OkHttpClient mOkHttpClient;
    private static Handler mDelivery;
    private static final String TAG = "OkHttpClientManager";
    private static Handler mHandler=new Handler(Looper.getMainLooper());

    private OkHttpClientManager() {
        //增加http请求的缓存
        int cacheSize = 10 * 1024 * 1024; // 10 MiB
        Cache cache = new Cache(new File(MyApplication.getInstance().getCacheDir().getPath()),cacheSize);
        mOkHttpClient = new OkHttpClient();
        //设置超时
        mOkHttpClient.setWriteTimeout(20, TimeUnit.SECONDS);
        mOkHttpClient.setReadTimeout(20, TimeUnit.SECONDS);
        //错误重连
        mOkHttpClient.setRetryOnConnectionFailure(true);
        //cookie enabled
        mOkHttpClient.setCookieHandler(new CookieManager(null, CookiePolicy.ACCEPT_ORIGINAL_SERVER));
        //暂时关闭请求缓存导致社区评论刷新不及时
        //mOkHttpClient.setCache(cache);
        //mOkHttpClient.networkInterceptors().add(REWRITE_CACHE_CONTROL_INTERCEPTOR);
        mDelivery = new Handler(Looper.getMainLooper());
        mOkHttpClient.networkInterceptors().add(new StethoInterceptor());



    }

  • 主要是加上了mOkHttpClient.networkInterceptors().add(new StethoInterceptor());,添加了拦截器,添加完成之后,先打开Chrome浏览器然后在浏览器输入chrome://inspect

image

  • 点击 inspect 就会打开一个新的界面如下 在此界面可以看到布局结构 image

在此界面可以看到我们请求的地址和时间,这点可以很方便我们测试接口的延迟和调试 image

最重要一点我们的数据库一般都是存放到data目录下面,如果要查看数据库就需要Root,有了他我们就不需要Root了 image

有没有,有了他我们调试数据库再也不麻烦了。