【发布时间】:2016-09-18 00:59:26
【问题描述】:
我想使用 curl 在单个 POST 请求中捕获以下参数:
- http 状态码
- 操作总时间
- 结果正文
根据手册 (http://curl.haxx.se/docs/manpage.html),这是我尝试过的选项。
1) -w 参数捕获 http_code 和 time_total。
curl "http://stackoverflow.com/" -w "\' %{http_code}\',\'%{time_total}\'"
但它似乎只返回这两个参数,我不再能够捕获身体。
2) -i 参数返回标头和请求的正文,但我将无法再返回总时间。
curl -i "http://localhost:8080/"
最终目标是将三个结果放入一个 JSON 对象中,然后可以根据需要对其进行解析。
{"httpVar: "200", "runtimeVar" : "18.58", "outputVar" : "ID:grinvriar080n23nvn"}
目前,我正在使用 groovy 脚本(类似于 JAVA),所以我认为我不能使用 bash 或 PHP。我可以计算 groovy 运行 .execute() 所花费的总时间,但这并不是 POST 发送/返回数据所需的真实时间。我什至愿意使用除了 curl 之外的其他程序。
我找了几天没有结果,因此感谢您提出任何建议。
【问题讨论】:
-
发现问题。我在命令末尾有一个“-o /dev/null”参数,它将实际的主体/输出放入以太中。当我省略它时,它会产生输出以及 http_code 和 time_total。