ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
> 非常有用,登录判断就用它了。记住是BrowserContext.getNetworkService().setNetworkDelegate JxBrowser提供允许处理网络活动的功能,包括HTTP请求/响应。您可以使用**NetworkDelegate**处理与指定BrowserContext关联的Browser实例的所有网络活动。 使用**NetworkDelegate**,您可以拦截所有HTTP请求/响应标头,并获取有关每个请求/响应阶段的信息。以下是所有请求/响应阶段的列表: ### onBeforeRequest -可以修改数据 请求即将发生时触发。此事件在建立任何TCP连接之前发送,并可用于将请求重定向到另一个位置。当方法类型为“POST”时,它可用于访问和修改请求的POST数据。见例子。 ### onBeforeSendHeaders 即将发出请求并且已准备好初始标头时触发。它允许添加,修改和删除HTTP请求标头 ### onBeforeSendProxyHeaders 使用代理连接时onBeforeSendHeaders之后触发。提供有关代理连接的信息,并允许添加,修改和删除HTTP请求标头。 ### onSendHeaders 在HTTP标头发送到网络之前触发。此事件是信息性的,不允许修改HTTP标头。 ### onHeadersReceived 每次收到HTTP(S)响应头时触发。由于重定向和身份验证请求,每次请求可能会多次发生这种情况。此事件旨在允许添加,修改和删除HTTP响应标头,例如传入的Set-Cookie标头。 ### onAuthRequired 当请求收到身份验证质询但无法使用缓存凭据进行响应时触发。您可以使用此方法来处理“基本”或“摘要”身份验证。 ### onBeforeRedirect 即将发出请求并且已准备好初始标头时触发。它允许添加,修改和删除HTTP请求标头。 ### onResponseStarted 收到响应正文的第一个字节时触发。对于HTTP请求,这意味着状态行和响应头可用。此事件是信息性的。 ### onCompleted 成功处理请求或失败时触发。 ### onDestroyed 在请求被销毁时触发。 ### onCanSetCookies 当引擎即将决定是否可以设置指定的cookie时触发。 ### onCanGetCookies 当引擎即将决定是否可以接收指定的cookie并发送到Web服务器时触发。 以下示例演示了如何使用onBeforeURLRequest事件更改目标URL,并在用户加载www.google.com时打印User-Agent HTTP标头值: ``` BrowserContext browserContext = BrowserContext.defaultContext(); browserContext.getNetworkService().setNetworkDelegate(new DefaultNetworkDelegate() { @Override public void onBeforeURLRequest(BeforeURLRequestParams params) { // If navigate to teamdev.com, then change URL to google.com. if (params.getURL().equals("http://www.teamdev.com/")) { params.setURL("www.google.com"); } } @Override public void onBeforeSendHeaders(BeforeSendHeadersParams params) { // If navigate to google.com, then print User-Agent header value. if (params.getURL().equals("http://www.google.com/")) { HttpHeaders headers = params.getHeaders(); System.out.println("User-Agent: " + headers.getHeader("User-Agent")); } } }); Browser browser = new Browser(browserContext); browser.loadURL("http://www.teamdev.com/"); ```