curl返回400个不带引号的错误请求

时间:2016-06-14 12:24:51

标签: php shell curl

curl -v 'something.com:12684/CAB/keyfile?r=ORE_0&t=VOD&p=1'

返回200,但使用

curl -v something.com:12684/CAB/keyfile?r=ORE_0&t=VOD&p=1

返回400.为什么报价很重要?

1 个答案:

答案 0 :(得分:3)

您的网址包含您认为特殊的字符。最有可能是&,它是UNIX-ish shell的信号,用于将命令放在后台。所以你有效地执行了三个命令:

curl -v something.com:12684/CAB/keyfile=?r=ORE_0
t=VOD
p=1

您没有看到任何shell错误输出,因为最后两个是有效的shell构造。

总是引用你的论点。如果在PHP中,请使用escapeshellarg。更好的是,使用curl内置版或第三方库,例如Guzzle