【发布时间】:2013-07-31 16:13:57
【问题描述】:
是否可以仅使用 URL 使用 PUT 方法进行 cURL 请求?这是我希望能够通过 PUT 方法使用 cURL 调用的 URL:
$url = https://url.net/card/activate.xml?card_id=1234567890&application_key=123123&accesskey=abcdef
我能够使用 REST 控制台(Chrome 扩展)使其工作,但不使用 cURL。我尝试将curl_setopt 与CURLOPT_PUT、CURLOPT_INFILE 和CURLOPT_INFILESIZE 一起使用,但我收到一个空白页面,根本没有任何响应。
这是我目前拥有的 headers 和 curl 选项:
$header[] = 'Authorization: Basic abc123';
$header[] = 'Accept: text/xml';
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($soap_do);
目前,使用这些设置,我收到 411 Length Required 错误。是否有可能让它像那样工作,还是我试图配置一些永远不会工作的东西?
【问题讨论】:
-
可能是
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-length: 0'));? (或者更确切地说,添加到您现有的标题中) -
我在我的 headers 数组中添加了 Content-Length: 0 并且它起作用了。