JxBrowser之三:常用函式setNetworkDelegate
阿新 • • 發佈:2018-11-27
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) {
}
});
以上。