JxBrowser之三:常用函数setNetworkDelegate

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

以上。

原文地址:https://www.cnblogs.com/chevin/p/10029373.html