【发布时间】:2011-12-25 13:34:27
【问题描述】:
我正在使用 cURL 通过 PHP 向我的网站发送 PUT 请求:
$data = array("a" => 'hello');
$ch = curl_init('http://localhost/linetime/user/1');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($data));
$response = curl_exec($ch);
var_dump($response);
然后,我正在侦听此 PUT 请求,但没有收到该请求的任何数据。请问你能告诉我哪里出错了吗?
$putData = '';
$fp = fopen('php://input', 'r');
while (!feof($fp)) {
$s = fread($fp, 64);
$putData .= $s;
}
fclose($fp);
echo $putData;
exit;
【问题讨论】:
-
您的意思是您在 Web 服务器的配置中将您的脚本指定为 PUT 处理程序?例如在 Apache 中使用
Script指令:Script PUT /your/script.php。 -
尝试强制使用
Content-Length标头。 -
@XcodeDev 请参阅下面我更新的帖子。我认为问题在于您发送数据的方式,而不是您接收数据的方式。