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