我已尝试从先前的Post请求切换到Get请求。它假设它是一个Get,但最终做了一个post。
我在PHP中尝试了以下操作:
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, null);
curl_setopt($curl_handle, CURLOPT_POST, FALSE);
curl_setopt($curl_handle, CURLOPT_HTTPGET, TRUE);
我遗漏了什么?
附加信息:我已经建立了一个连接来执行POST请求。这成功完成了,但稍后当我尝试重用连接并使用上面的setopts切换回GET时,它仍然在内部执行POST,但POST标头不完整。问题是,它认为它正在进行GET,但最终放置了一个没有content-length参数的POST头,连接失败并返回了411错误。
发布于 2009-08-04 18:56:53
解决:问题出在这里:
我通过_CUSTOMREQUEST
和_POST
设置了POST
,_CUSTOMREQUEST
保持为POST
,而_POST
切换为_HTTPGET
。服务器认为来自_CUSTOMREQUEST
的报头是正确的,并返回一个411。
curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, 'POST');
发布于 2012-05-04 14:20:54
在调用curl_exec($curl_handle)之前添加此代码
curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, 'GET');
发布于 2017-01-17 08:36:48
CURL请求默认情况下是GET,您不需要设置任何选项来发出GET CURL请求。
https://stackoverflow.com/questions/1225409
复制相似问题