今天遇到了一个 curl 的问题,感觉有点坑

2021-04-30 17:19:19 +08:00
 zhoudaiyu

把今天遇到的一个实际问题简化一下,命令是:curl www.baidu.com/a/?expire=2&token=3,其中查询参数里面的 token 是必须有的,否则对方会报 403 。然后执行后发现居然响应是 403 ?加上 -vvv 看了一下,原来 curl 把我的命令给转化为了 curl www.baidu.com/a/?expire=2 & curl token=3,把 url 加引号后就正常了,也就是 curl "www.baidu.com/a/?expire=2&token=3"。感觉有点坑,也可能是我太菜了不知道这个。。。

3958 次点击
所在节点    Linux
34 条回复
aflow
2021-04-30 20:44:32 +08:00
直接写 curl 命令有点不方便,我都是用 postman 写完导出为 curl 命令的
hljjhb
2021-04-30 21:25:19 +08:00
zhoudaiyu
2021-04-30 21:48:01 +08:00
@hljjhb 明白了 感谢!
zhoudaiyu
2021-04-30 21:48:10 +08:00
@aflow 图省事了
zhoudaiyu
2021-04-30 21:48:21 +08:00
@GuuJiang 明白了老哥 谢谢
BrettD
2021-05-01 01:56:52 +08:00
不是 curl 给你转换的,是 shell 给你转换的,curl 自己收到的命令就已经是转换后的了
laoyur
2021-05-01 08:09:36 +08:00
append 甩锅也没用,看你帖文,你跟你老板差不多菜,哈哈哈
imycc
2021-05-01 09:49:27 +08:00
用 zsh 你一个一个命令敲的话,会给你自动补齐一个转移的。但是直接张贴就不行了。。之前也经常犯错,然后养成习惯加个引号包起来
aloxaf
2021-05-01 15:45:32 +08:00
@imycc 原生 zsh 不会自动补转义符吧?粘贴时自动转义倒是确实有:

autoload -Uz bracketed-paste-url-magic
zle -N bracketed-paste bracketed-paste-url-magic
liuxing
2021-05-04 21:55:22 +08:00
哈哈哈 今天刚写了个 Curl 使用指南

v2 链接: https://v2ex.com/t/774907
原文链接: https://www.liuxing.io/blog/curl/
zhoudaiyu
2021-05-04 22:21:16 +08:00
@liuxing 我太菜了 感觉好多 curl 的高级用法都不会😭
julyclyde
2021-05-08 14:22:17 +08:00
其实并不是 curl token=3 而是直接就 token=3 了

关于 curl 和&符号,前几年我见过 100 万美元的大事故
zhoudaiyu
2021-05-08 14:23:09 +08:00
@julyclyde #32 愿闻其详
julyclyde
2021-05-08 14:25:20 +08:00
@zhoudaiyu 就是当时 curl 访问的是一个“命令”而不是“数据”
因为给的 querystring 里&符号的问题,等于说给命令少了一个参数,变成另一个意思了

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

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

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

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

© 2021 V2EX