开始用PHP的file_get_contents请求,返回400 Bad Request,但是用浏览器或PostMan访问正常。
然后尝试用PHP的curl函数,一样的错误。
修改php.ini的user-agent或者给curl添加user-agent的header,一样的错误。
服务器直接执行curl命令,一样的错误。
经过一番研究,终于找到原因。
解决方案:url中的空格及加号需要替换为%20,执行成功。
str_replace(array(‘ ‘, ‘+’), ‘%20’, $param)