1、常用函數setNetworkDelegate,包含對網絡傳輸數據狀態的多種監控回調。
2.着重說一下其中的幾個函數
BrowserContext browserContext = BrowserContext.defaultContext(); NetworkService networkService = browserContext.getNetworkService(); networkService.setNetworkDelegate(new DefaultNetworkDelegate() { //響應開始,一般來說,可以在這里初始化某些數據
@Override public void onResponseStarted(ResponseStartedParams params) { String url = params.getURL(); //針對某些特定url進行處理
if(url.equals("www.baidu.com")) { receiveData = ""; } } //響應開始后,開始接收數據,由於數據塊可能過大,可能會多次調用,也就是說可能一次Started,多次Received,需要我們進行拼接數據包,和socket拼包同理
@Override public void onDataReceived(DataReceivedParams params) { String url = params.getURL(); //針對某些特定url進行處理 //可以在這里對某些感興起的數據進行收集
if(url.equals("www.baidu.com")) { if (params.getMimeType().equals("application/json") || params.getMimeType().equals("text/html")) { receiveData += new String(params.getData(), Charset.forName("UTF-8")); //累加數據
} } } //這個函數不是說Response完成,而是Request完成(沒有Response完成對應的回調函數!具體啥時候Response結束,這個需要根據頁面情況進行判斷!)
@Override public void onCompleted(RequestCompletedParams params) { } });
以上。