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 格式输出信息就好了。
1
lisonfan 2020-03-18 10:49:34 +08:00
有个 httpie
|
2
wdytoya 2020-03-18 10:51:18 +08:00
挺好的,小而美的优化
|
3
chocotan 2020-03-18 10:59:10 +08:00
我一般在后面加 | jq
|
4
onion83 2020-03-18 11:00:12 +08:00
| jq +1
|
5
langxuan 2020-03-18 11:14:41 +08:00
| jq + 2
|
6
ifsclimbing 2020-03-18 11:19:40 +08:00 via iPhone
是不是可以给所有命令加个前置 filter,处理结果成 json
|
7
scriptB0y 2020-03-18 12:13:50 +08:00
|
8
weixiangzhe 2020-03-18 12:24:33 +08:00
我一般是用 fx
curl xxxx | fx |
9
wujunze 2020-03-18 12:44:11 +08:00
jq +10086 挺方便的
httpie 也不错 就是卡一点 |
10
MeteorCat 2020-03-18 12:52:53 +08:00 via Android
这个可以呀,以后可以直接调用外部脚本 curl 批量保存嗅探网站的信息了
|
11
hantsy 2020-03-18 12:59:00 +08:00
Windows 下 的 Curl 是啥版本,好多问题。
不得不转到 Cygwin 下用。 |
12
Maco 2020-03-18 13:11:45 +08:00
curl xxx | | python -m json.tool
|
13
Maco 2020-03-18 13:13:22 +08:00
理解错了
|
14
est 2020-03-18 15:07:14 +08:00
然后你又需要一个命令行工具来解析 JSON 了。
|
15
Narcissu5 2020-03-18 22:10:08 +08:00
有点好奇这种工具是谁在维护
|
16
wangyzj 2020-03-18 23:35:54 +08:00
jq 不错
|
17
ps1aniuge 2020-03-19 00:36:30 +08:00
linux 版 powershell:Invoke-WebRequest 网址
直接返回对象,内有属性方法,不香么?可以代替大部分 curl 的需求。 |
18
Jirajine 2020-03-19 12:59:30 +08:00 via Android
|
20
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 嘛。 |
21
ps1aniuge 2020-03-19 14:41:21 +08:00
mkdir -p ~/.config/powershell ;Add-Content -Path $profile -Value 'new-alias -Name curl -Value Invoke-WebRequest ; new-alias -name wget -Value Invoke-WebRequest'
|
22
CallMeReznov 2020-03-19 14:54:52 +08:00
帅 以后就不要在加 jq 了吗
|
23
ChristopherWu 2020-03-19 15:09:47 +08:00
我一直想做这样子的项目,用 json 将所有命令行工具都包装一遍。
什么 ls,pwd,grep,top 都添加一个选项 --json-output ,可以输出 json,然后就可以用 jq 玩弄了。 文本化输出时 unix 的一大败笔,没法洗。 |
24
Jirajine 2020-03-19 15:10:50 +08:00 via Android
@ps1aniuge @littleshy
关键是,这个命令和 curl,wget 的行为都不同。 习惯性地用 wget 下个文件,开始看起来正常,下完以后文件呢? 和 curl 也是各种结果不一致,还会 following redirect。 还有其他的各种灵异事件,cat 1.jpg > 2.jpg 出来一坨什么东西? nc 接管道收到的数据怎么和发的不一样? ls | grep xxx 怎么没效果? 如此种种让不了解 PowerShell 的用户(没错,以前的我)满脸懵逼,实在忍无可忍去看 PowerShell 的文档,一看才知道怎一个坑字了得,自作聪明的内置别名,瞎胡闹的对象管道,用 git-bash 我都不想用它。 |
25
ps1aniuge 2020-03-20 16:23:45 +08:00
@Jirajine 同人,这个词了解一下。
你可以不用,但不能不让别人,用同人继续演义。 国家允许“王者荣耀”酒 ,参见 《腾讯状告国 a 家 b 版 c 权局》 qq 车, 还有什么小说, [异界岳不群] [魔界张三丰] 你在百度搜的东西和谷歌搜的结果也不一样。 结果不一致又如何呢?只有甜豆浆才是正宗? 史上武值没有大郎那么矮,金莲也是娴妇。 是不是把看金-屏-妹的邪书的都灭了? 那么肮脏,那么不正能量,你还不是照样钻被窝看禁书。你咋不大义凛然呢? 你,他,我,curl 作者,再做一个 [解析网址成 dom 对象版 curl] ,谁也做不成和 curl 结果完全一致。又何必强求 ps 项目呢。 就算做成了和 curl 完全一致的,完全一致,那直接用 curl 得了。那不是没用么? |
26
ps1aniuge 2020-03-20 16:42:41 +08:00
命令行解析网址,是一个学科。
不同的人,有不同理解, 先来的就是正宗么?如此说 ie 是正宗,chrome 应该被你抛弃。你 chrome 凭什么解析结果和 ie 不同? 同理, 上帝,圣母,谁更正宗,应该信谁??? 所以, 希望大家看开些。 最后, Invoke-WebReques 香不? |