chromedp上的网络使用情况

问题描述

我正在尝试为chromedp查找每个请求的响应大小 我尝试了以下代码

chromedp.ListenTarget(
    ctx,func(ev interface{}){
        if ev,ok := ev.(*network.EventResponseReceived); ok {
            fmt.Println("event received:")
            fmt.Println(ev.Type)
            var len = ev.Response.EncodedDataLength;
            fmt.Println(ev.Response.URL + ":" + fmt.Sprintf("%f",len))
            return

        }
    },)

但是EncodedDataLength是到目前为止为此请求接收的字节总数(根据文档)。有没有办法获得完整的响应大小。

谢谢

解决方法

您可以使用EventLoadingFinished

Network.loadingFinished#。
在HTTP请求加载完成时触发。 为here

EventLoadingFinished.EncodedDataLength将为您提供完整的尺寸,因为仅在加载整个响应后才会触发此事件。您可以同时使用两个事件,并使用RequestID字段将它们映射到特定的资源URL。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...