Php Curl Post方法,超过16000个字符无法发送数据

Php Curl Post方法,超过16000个字符无法发送数据,php,curl,php-curl,Php,Curl,Php Curl,在PHP Curl代码中,我们只能一次发送16000个字符。如果发送的数据包含超过16000个字符,则数据将被分解并发送到服务器 以下是数据的分解方式: 数据的传递方式: $parameters { "Data1" => 1. "Data2" => <string_containing_20000_characters>, "Data3" => <string_containing_25000_characters>, "Data

在PHP Curl代码中,我们只能一次发送16000个字符。如果发送的数据包含超过16000个字符,则数据将被分解并发送到服务器

以下是数据的分解方式:

数据的传递方式:

$parameters {
   "Data1" => 1.
   "Data2" => <string_containing_20000_characters>,
   "Data3" => <string_containing_25000_characters>,
   "Data4" => 4
}
请任何人帮我找出我上面的代码有什么问题。

试试看:

curl\u setopt($curl,CURLOPT\u HTTP\u VERSION,curl\u HTTP\u VERSION\u 1\u 0)

似乎CURL在发送大数据时会设置一个额外的头:
Expect:100 Continue
,在您的情况下,您不希望这样做。Mozilla开发者网络将其描述为:

ExpectHTTP请求头指示服务器需要满足的期望,以便正确处理请求

规范中定义的唯一期望是Expect:100 continue,服务器应响应:

100如果标题中包含的信息足以立即导致成功, 417(预期失败),如果不能满足预期;或任何其他>4xx状态。 例如,如果请求的内容长度太大,服务器可能会拒绝该请求

没有常见的浏览器发送Expect标头,但默认情况下,其他一些客户端(如cURL)会发送Expect标头

RFC声明:()

在HTTP/1.0中接收100个连续期望值的服务器 请求必须忽略该期望

尝试一下:

curl\u setopt($curl,CURLOPT\u HTTP\u VERSION,curl\u HTTP\u VERSION\u 1\u 0)

似乎CURL在发送大数据时会设置一个额外的头:
Expect:100 Continue
,在您的情况下,您不希望这样做。Mozilla开发者网络将其描述为:

ExpectHTTP请求头指示服务器需要满足的期望,以便正确处理请求

规范中定义的唯一期望是Expect:100 continue,服务器应响应:

100如果标题中包含的信息足以立即导致成功, 417(预期失败),如果不能满足预期;或任何其他>4xx状态。 例如,如果请求的内容长度太大,服务器可能会拒绝该请求

没有常见的浏览器发送Expect标头,但默认情况下,其他一些客户端(如cURL)会发送Expect标头

RFC声明:()

在HTTP/1.0中接收100个连续期望值的服务器 请求必须忽略该期望


您还必须编辑web服务器配置文件(在接收数据的服务器上)

如果您使用的是nginx设置
client\u max\u body\u size 10M
或您认为合适的任何其他值

在apache上,您将拥有
LimitRequestBody 10485760
(10MB)


建议设置合理的值,例如而不是2GB



请参见您还必须编辑web服务器配置文件(在接收数据的服务器上)

如果您使用的是nginx设置
client\u max\u body\u size 10M
或您认为合适的任何其他值

在apache上,您将拥有
LimitRequestBody 10485760
(10MB)


建议设置合理的值,例如而不是2GB



请参见

在php代码中检查此内存的输出\u限制:1280在php代码中检查此内存的输出\u限制:1280当我尝试上述代码时,返回解析错误:语法错误,意外的“curl\u setopt”(T\u STRING)in@3xIUGThank的,我有一个问题,代理(不知何故)在1kb的数据(put请求)后将我反弹回来。通过使用1.0(由于100个continue),服务器上的一切都开始工作了+1 ;)当我尝试上面的代码时,返回解析错误:语法错误,意外的“curl_setopt”(T_STRING)in@3xIUGThank的,我有一个问题,代理(不知何故)在1kb的数据(put请求)后将我反弹回来。通过使用1.0(由于100个continue),服务器上的一切都开始工作了+1 ;)
_POST {
   "Data1" => 1.
   "Data2" => <first_16000_characters><first_4000_characters>,
   "Data3" => <first_16000_characters><first_9000_characters>,
   "Data4" => 4
}
$curl_post_data = array("Data1" => "1", "Data2" => "<string_containing_20000_characters>", "Data3" => "<string_containing_25000_characters>", "Data4" => "4");

$curl = curl_init($rest_webservice_url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$rest_return_data = curl_exec($curl);
curl_close($curl);
echo $rest_return_data;
max_execution_time = 300
max_input_time = 600
memory_limit = 1280M
post_max_size = 2048M
upload_max_filesize = 2048M
max_file_uploads = 200