接之前用Stetho調(diào)試數(shù)據(jù)庫的文章, 默認(rèn)chrome://inspect/#devices中的network是空白頁.
如果要監(jiān)測網(wǎng)絡(luò)訪問, 需要額外再做一些工作.
如果項目中直接使用HttpURLConnection實現(xiàn)網(wǎng)絡(luò)訪問的話, 需要配合使用StethoURLConnectionManager來完成對網(wǎng)絡(luò)的監(jiān)控, 但我沒找到如何使用這個類, 也就不再細(xì)究它了.
Stetho和okhttp都是facebook出品的, 因此它倆肯定能配合的很好.
下面記錄下如何使用okhttp, 并且讓Stetho能夠成功的檢測到網(wǎng)絡(luò)數(shù)據(jù).
- build.gradle.
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
...
compile 'com.facebook.stetho:stetho:1.3.1'
compile 'com.facebook.stetho:stetho-okhttp3:1.3.1'
}
- 寫一個OkHttpUtil.java
package com.hola.weather.utils;
import com.facebook.stetho.okhttp3.StethoInterceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
/**
* Created by wangxin on 17-8-4.
*/
public class OkHttpUtil {
private static OkHttpClient mOkHttpClient;
private static OkHttpUtil mInstance;
private OkHttpUtil() {
mOkHttpClient = new OkHttpClient.Builder()
.addNetworkInterceptor(new StethoInterceptor())
.build();
}
public static OkHttpUtil getInstance() {
if(mInstance == null) {
mInstance = new OkHttpUtil();
return mInstance;
}
return mInstance;
}
public static String requestData(String address) throws Exception {
Request request = new Request.Builder()
.url(address)
.build();
Response response = mOkHttpClient.newCall(request).execute();
return response.body().string();
}
}
- 調(diào)用API訪問url.
OkHttpUtil.getInstance().requestData(requestUrl);
- 打開 chrome://inspect/#devices
這時, 網(wǎng)絡(luò)數(shù)據(jù)的傳輸就可以被成功的監(jiān)測到了.
---DONE.------