今天遇到了一个 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"。感觉有点坑,也可能是我太菜了不知道这个。。。

3899 次点击
所在节点    Linux
34 条回复
CloudMx
2021-04-30 17:20:50 +08:00
确实是你太菜导致了...
keepeye
2021-04-30 17:26:21 +08:00
你不知道 & 在 linux 下是关键字吗?以及 &&
keepeye
2021-04-30 17:26:50 +08:00
bash shell
nannanziyu
2021-04-30 17:29:36 +08:00
?和&需要转义
curl www.baidu.com/a/\?expire=2\&token=3
AstroProfundis
2021-04-30 17:30:49 +08:00
url 用引号包起来就行了
dalei
2021-04-30 17:32:50 +08:00
真的是你的问题。
learningman
2021-04-30 17:33:38 +08:00
是你太菜了,不管是 cmd,powershell 还是 bash,&都是保留字
madpecker009
2021-04-30 17:34:30 +08:00
@CloudMx 我就喜欢这样的评论
zhoudaiyu
2021-04-30 17:39:05 +08:00
@CloudMx #1
@keepeye #2
@keepeye #3
@nannanziyu #4
@AstroProfundis #5
@dalei #6
@learningman #7
@madpecker009 #8 冤枉啊冤枉啊!是我的领导问的我,他想了+试了一下午没搞定然后问我,我想了 2 分钟试了一下告诉他了。。
pepesii
2021-04-30 17:42:14 +08:00
@zhoudaiyu #9 哈哈,帮我转达给你领导,他太菜了
zhoudaiyu
2021-04-30 17:49:12 +08:00
@pepesii PUA 警告⚠️
firebroo
2021-04-30 17:51:59 +08:00
确实是你太菜导致了...
ch2
2021-04-30 18:01:02 +08:00
一般字符串都要加引号
HenryGe
2021-04-30 18:03:22 +08:00
curl 百度要加 UA header, 不然会被拒。
deplives
2021-04-30 18:27:18 +08:00
那可确实是你太菜了
zhoudaiyu
2021-04-30 19:06:46 +08:00
@firebroo #12
@ch2 #13
@HenryGe #14
@deplives #15 我承认,我想了 2 分钟,确实还是菜🤣,应该立马想到才对
hljjhb
2021-04-30 20:23:20 +08:00
@zhoudaiyu 「 curl 把我的命令给转化为」,其实是看你找的原因不对😂
GuuJiang
2021-04-30 20:32:11 +08:00
@zhoudaiyu 你执行下 fg 命令还会有新的惊喜
zhoudaiyu
2021-04-30 20:40:33 +08:00
@hljjhb #17 那是?
love
2021-04-30 20:42:54 +08:00
命令行参数有一大堆符号加单引号是基本操作,否则可能有不可测效果(并不是只有&是 bash 特殊字符

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

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

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

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

© 2021 V2EX