繁体   English   中英

PHP Curl 请求返回 HTTP 错误 411:请求必须分块或具有内容长度

[英]PHP Curl Request returning HTTP Error 411: The request must be chunked or have a content length

我正在尝试在 PHP 中发送以下 CURL 请求。 但它返回:“HTTP 错误 411。请求必须分块或具有内容长度。”

包含 CURL 请求的 PHP 脚本:

<?php
$numbers = 9999999999;
$message = "Test";
$message = urlencode($message);
$port = 80;
$url = "http://191.95.51.64/API/sendsms.aspx?loginID=myloginid&password=mypassword&mobile=".$numbers."&text=".$message."&senderid=ABCDEF&route_id=1&Unicode=1";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ( $ch, CURLOPT_PORT, $port );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ( $ch, CURLOPT_TIMEOUT, 20 );
curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 20 );
$output = curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);    
if ($err) {
    echo $err;
} else {
    echo $output;
}
?>  

输出:

Length Required

HTTP Error 411. The request must be chunked or have a content length.  

由于我是使用 PHP Curl 的新手,所以我无法找出问题所在。 如果有人可以通过示例简要指导我解决方案,我将非常感谢他。 谢谢!

由于您的数据似乎作为 URL 参数发送,请尝试添加零内容长度标头,如下所示:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Length: 0'));

此外,不要触及内容长度标题,只需尝试添加一个空的 POST 正文即可。 根据您发布到哪种类型的 HTTP 服务器,行为略有不同(IIS、LightHTTPD、Apache)。

类似于以下内容的空帖子正文:

curl_setopt($ch, CURLOPT_POSTFIELDS, array());

你忘了关闭报价:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Length: 0'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM