【问题标题】:curl returns 400 bad request without quotescurl 不带引号返回 400 错误请求
【发布时间】:2016-06-14 12:24:51
【问题描述】:
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) 这就是 shell 的工作方式。 2) 你可以使用 escapeshellarg(),PHP 会帮你做 3) 你不需要命令行 curl,PHP 有内置的 curl 函数

标签: php shell curl


【解决方案1】:

您的 URL 包含您的 shell 识别为特殊的字符。最有可能的是&,它是 UNIX-ish shell 将命令置于后台的信号。所以你实际上是在执行三个命令:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-16
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 2019-07-11
    • 2015-04-06
    相关资源
    最近更新 更多