WithCoderWithCoderWithCoder

PHP的curl发送POST请求(不带请求参数)返回400状态码

    在PHP中,可以使用cURL发起get和post网络请求。最近在开发时,发现一个问题,本地测试的POST请求没有问题,但是将代码部署到Linux服务器后,同样的代码发送POST请求,返回400状态码。

    这个POST请求只是简单的调用服务器上的接口,没有参数。出现问题时,因为时间仓促,只是简单的将cURL的POST请求修改为GET,然后调用正常。但最近因为又写了几个接口,碰到了类似的情况。特意在网上查找了一下,具体原因和解决方法如下:

    问题出在Linux下如果发送空请求参数的时候不能使用curl_setopt($ch, CURLOPT_POST, true)来设置为POST请求。如果确有需要,可以用curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST')代替。但是如果我们使用别人提供的类库时,这时候只能随便加个参数上去,不要发送空请求就好了,比如随便加个t=time()。

欢迎分享交流,转载请注明出处:WithCoder » PHP的curl发送POST请求(不带请求参数)返回400状态码