curl 将在版本 7.70 支持以 JSON 方式输出调试信息

2020-03-18 10:45:21 +08:00
 Livid

https://daniel.haxx.se/blog/2020/03/17/curl-write-out-json/

例子如下:

{
  "url_effective": "https://example.com/",
  "http_code": 200,
  "response_code": 200,
  "http_connect": 0,
  "time_total": 0.44054,
  "time_namelookup": 0.001067,
  "time_connect": 0.11162,
  "time_appconnect": 0.336415,
  "time_pretransfer": 0.336568,
  "time_starttransfer": 0.440361,
  "size_header": 347,
  "size_request": 77,
  "size_download": 1256,
  "size_upload": 0,
  "speed_download": 0.002854,
  "speed_upload": 0,
  "content_type": "text/html; charset=UTF-8",
  "num_connects": 1,
  "time_redirect": 0,
  "num_redirects": 0,
  "ssl_verify_result": 0,
  "proxy_ssl_verify_result": 0,
  "filename_effective": "saved",
  "remote_ip": "93.184.216.34",
  "remote_port": 443,
  "local_ip": "192.168.0.1",
  "local_port": 44832,
  "http_version": "2",
  "scheme": "HTTPS",
  "curl_version": "libcurl/7.69.2 GnuTLS/3.6.12 zlib/1.2.11 brotli/1.0.7 c-ares/1.15.0 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.3.0) nghttp2/1.40.0 librtmp/2.3"
}

如果所有 Unix 工具都能这样用 JSON 格式输出信息就好了。

5933 次点击
所在节点    cURL
26 条回复
lisonfan
2020-03-18 10:49:34 +08:00
有个 httpie
wdytoya
2020-03-18 10:51:18 +08:00
挺好的,小而美的优化
chocotan
2020-03-18 10:59:10 +08:00
我一般在后面加 | jq
onion83
2020-03-18 11:00:12 +08:00
| jq +1
langxuan
2020-03-18 11:14:41 +08:00
| jq + 2
ifsclimbing
2020-03-18 11:19:40 +08:00
是不是可以给所有命令加个前置 filter,处理结果成 json
scriptB0y
2020-03-18 12:13:50 +08:00
@chocotan
@onion83
@langxuan

不是一个东西,这个功能不是将 HTTP Response 输出格式化,是 curl 本身的调试信息以 json 输出。
weixiangzhe
2020-03-18 12:24:33 +08:00
我一般是用 fx
curl xxxx | fx
wujunze
2020-03-18 12:44:11 +08:00
jq +10086 挺方便的
httpie 也不错 就是卡一点
MeteorCat
2020-03-18 12:52:53 +08:00
这个可以呀,以后可以直接调用外部脚本 curl 批量保存嗅探网站的信息了
hantsy
2020-03-18 12:59:00 +08:00
Windows 下 的 Curl 是啥版本,好多问题。
不得不转到 Cygwin 下用。
Maco
2020-03-18 13:11:45 +08:00
curl xxx | | python -m json.tool
Maco
2020-03-18 13:13:22 +08:00
理解错了
est
2020-03-18 15:07:14 +08:00
然后你又需要一个命令行工具来解析 JSON 了。
Narcissu5
2020-03-18 22:10:08 +08:00
有点好奇这种工具是谁在维护
wangyzj
2020-03-18 23:35:54 +08:00
jq 不错
ps1aniuge
2020-03-19 00:36:30 +08:00
linux 版 powershell:Invoke-WebRequest 网址
直接返回对象,内有属性方法,不香么?可以代替大部分 curl 的需求。
Jirajine
2020-03-19 12:59:30 +08:00
@ps1aniuge 别逗了,你软自作聪明给 Invoke-WebRequest 默认搞得 wget 和 curl 两个别名不知道让包括楼上 @hantsy 在内的多少人满脸懵逼。
littleshy
2020-03-19 13:08:44 +08:00
@Jirajine #18 哈哈。Powershell core 7 里好像把这两个别名去掉了。
ps1aniuge
2020-03-19 14:31:02 +08:00
@littleshy 哦这个我还没了解到,刚才试了下,果然如此。
实际上我是建议有这两个别名的。

psv7 中 curl,wget 还原大法=香!:
```
new-alias -Name curl -Value Invoke-WebRequest ; new-alias -name wget -Value Invoke-WebRequest
```

你要不想用 curl 别名,可以用 /usr/bin/curl 嘛。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/653786

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX