如何将文件内容作为curl参数?排查time_total返回0.00000s的异常
问题分析与解决办法
先看导致curl返回time_total = 0.00000s的核心问题:
url.txt里第一个URL格式错误:http:://localhost:8080/bankDetail多了一个冒号,curl无法识别这个无效协议,直接请求失败,所以耗时为0。- 脚本中
$line未加双引号,若URL含特殊字符/空格,curl会错误拆分参数,引发请求异常。
修正步骤
- 修复URL格式
把url.txt里的错误URL改成正确格式:
http://localhost:8080/bankDetail http://localhost:8080/bankAccount http://localhost:8081/hi
- 优化Shell脚本
给$line加双引号,同时用read -r避免转义干扰,再去除行首尾空白字符:
while read -r line do # 清除行首尾的空格、换行符 trimmed_line=$(echo "$line" | xargs) echo "$trimmed_line" curl -w "@curl-format.txt" -o /dev/null -s "$trimmed_line" done < url.txt
- 确认curl-format.txt格式
确保你的统计格式文件内容正确,比如常用的性能统计模板:
time_namelookup: %{time_namelookup}\n time_connect: %{time_connect}\n time_starttransfer: %{time_starttransfer}\n ----------\n time_total: %{time_total}\n
修改完成后,curl就能正常请求每个URL并返回真实的耗时统计了。
内容的提问来源于stack exchange,提问作者Abdullah Chaudhry
相关产品推荐
相关产品推荐

