PUT查询参数没有在PHP curl请求中使其成为服务器

时间:2014-03-26 01:18:02

标签: php curl put

我正在尝试使用PHP和curl发送PUT请求,我的查询参数似乎没有进入API。日志验证请求是作为PUT进入但参数没有成功。我已经按照我在互联网上找到的每个例子来描述如何构建手动构建它的查询参数并使用http_build_query函数。然后,我使用CURLOPT_POSTFIELDS值添加参数。我是否遗漏了具有PUT请求的查询参数所需的内容?

1 个答案:

答案 0 :(得分:0)

与POST请求不同,PUT请求需要指定您要发送给服务器的Content-Length。这是一个例子:

// data to be sent
$post_data = "...soem data";

// so that you get response
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// this is must for doing PUT
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Length: ' . strlen($post_data)));

// Doing PUT
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data ); 

如果此后仍有问题,请通过启用详细模式运行curl,它将在curl的操作中显示调试信息:

curl_setopt($ch, CURLOPT_VERBOSE, true);