golang中如何基于net包实现Curl获取下载速度等指标
1. 运行环境
- go v1.18.1
- centos7
2. 问题描述?
使用net包实现curl指令功能,发现只能模拟请求get,post等方式,存在两个问题
- 1:下载速度,时间,文件大小这些数据怎么获取
- 2:指定ip的curl指令,如何使用net包实现,比如:curl –connect-timeout 5 -m 30 -w %{http_code}::%{speed_download}::%{size_download}”\n” -x 127.0.0.1:80 “http://xxx.com/1M.png"
3. 您期望得到的结果?
- 给出指导建议,例如有其他包可以实现(exec包执行命令除外)
- 给出方法,相关指标计算与哪些参数有关,获取途径是啥
4. 您实际得到的结果?
目前使用net包,只能间接计算建联时间,文件大小,下载速度
存在准确度问题
使用支持多种协议吗,如果只要 http 方面, 怎么不使用 http 包呢,1. response header 里就有内容大小,2. 下载速率=总大小/每秒的下载大小,3. 总耗时=总大小/速率