Friday, April 10, 2026

httpclient

 this.httpClient = HttpClients.custom()
                    .setSSLContext(new SSLContextBuilder().loadTrustMaterial(null, TrustAllStrategy.INSTANCE).build())
                    .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE).build();

How to capture browser network logs

Create a Chrome devtool object 

protected static DevTools devTools;

 

Call below function in the setup method.

/**
     * To capture browser network logs
     */
    public void getBrowserNetworkLogs() {
        if (getBrowserName().equalsIgnoreCase("CHROME")) {

            // Create a session with DevTools
            devTools = ((ChromeDriver) driver).getDevTools();
            devTools.createSession();
            devTools.send(Network.clearBrowserCache());
            devTools.send(Network.setCacheDisabled(true));

            // Enable network tracking
            devTools.send(Network.enable(java.util.Optional.empty(), java.util.Optional.empty(),
                    java.util.Optional.empty(), java.util.Optional.empty(), java.util.Optional.empty()));
            // final RequestId[] requestIds = new RequestId[1];

            // Capturing request information of a network call
            /*
             * devTools.addListener(Network.requestWillBeSent(), request -> {
             * APP_LOGS.error("Request: " + request.getRequest().getUrl()); });
             */

            // Capturing response information of a network call
            devTools.addListener(Network.responseReceived(), response -> {
                RequestId requestId = response.getRequestId();

                if (response.getResponse().getStatus() != 200) {
                    String responseUrl = response.getResponse().getUrl();
                    if (responseUrl.contains("chubb") && !responseUrl.contains("favicon.ico")
                            && !responseUrl.contains("chubb-publico")) {
                        int responsStatus = response.getResponse().getStatus();
                        // String responseType = response.getType().toJson();
                        String statusText = response.getResponse().getStatusText();
                        String responseHeaders = response.getResponse().getRequestHeaders() != null
                                ? response.getResponse().getRequestHeaders().toString()
                                : "N/A";
                        String responseBody = devTools.send(Network.getResponseBody(requestId)).getBody();
                        String requestPostData = devTools.send(Network.getRequestPostData(requestId)).toString();

                        APP_LOGS.error("Response Url: " + responseUrl);
                        APP_LOGS.error("Response Status Code: " + responsStatus);
                        APP_LOGS.error("Response Text: " + statusText);
                        APP_LOGS.error("Response Headers: " + responseHeaders);
                        APP_LOGS.error("Response Body: " + responseBody);
                        APP_LOGS.error("Request Post Data: " + requestPostData);
                    }
                }
            });

        } else {
            APP_LOGS.info("Browser network log not captured for: " + getBrowserName());
        }
    }
 

 Close the dvetools connection in the tearDown methid.


        if (devTools != null) {
            devTools.send(Network.disable());
        }