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

2021 年 4 月 30 日
 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"。感觉有点坑,也可能是我太菜了不知道这个。。。

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

autoload -Uz bracketed-paste-url-magic
zle -N bracketed-paste bracketed-paste-url-magic
liuxing
2021 年 5 月 4 日
哈哈哈 今天刚写了个 Curl 使用指南

v2 链接: https://v2ex.com/t/774907
原文链接: https://www.liuxing.io/blog/curl/
zhoudaiyu
2021 年 5 月 4 日
@liuxing 我太菜了 感觉好多 curl 的高级用法都不会😭
julyclyde
2021 年 5 月 8 日
其实并不是 curl token=3 而是直接就 token=3 了

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

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

https://study.congcong.us/t/774403

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

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

© 2021 V2EX