2

是否可以仅使用 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_setoptwith CURLOPT_PUTCURLOPT_INFILECURLOPT_INFILESIZE我收到一个空页面,根本没有响应。

这是我目前拥有的标题和卷曲选项:

$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 错误。是否有可能让它像那样工作,还是我试图配置一些永远不会工作的东西?

4

1 回答 1

4

HTTP 411 错误

Web 服务器(运行网站)认为客户端(例如您的 Web 浏览器或我们的 CheckUpDown 机器人)发送的 HTTP 数据流应该包含“内容长度”规范。这通常仅用于导致将数据放置在 Web 服务器上的 HTTP 方法,而不是从中检索数据。

您需要设置数据的内容长度

$header[] = 'Content-length: '.strlen($put_data);

或者如果你没有任何数据,就放在0那里。

于 2013-07-31T16:21:52.093 回答