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) {
}
});
以上。