我有PHP代码,使用CURL通过POST请求从一台服务器向另一台服务器发送3个不同的阵列。其中一个数组可能包含可变数量的记录,其他数组 - 总是一个记录。在发送每个数组之前是json编码的。然后使用3个不同的POST参数,每个阵列1个。 SSL已启用。
所以一切都运行得很好,而变量大小的'数组不大于50条记录(应用程序15 kB)。 但是当我尝试发送51个或更多记录时 - 解码该阵列时接收服务器上会发生json解码错误('语法错误')。
有人可以就传输数据变大的问题向我提出任何想法/建议吗?如何避免/修复?
注意:两台服务器都具有相同的配置:Win7,Apache2.4,PHP7.0,启用SSL。
以下是我用于发送数据的代码:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://$targIP/curl.php");
curl_setopt($ch, CURLOPT_CAINFO, $pathCer . "xxx.crt");
curl_setopt($ch, CURLOPT_SSLCERT, $pathCer . "yyy.pem");
curl_setopt($ch, CURLOPT_SSLKEY, $pathCer . "zzz.key");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // "2": Check that the common name exists and matches the host name of the server
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
array ('action' => "newupl", 'data0' => $inPart0, 'data1' => $inPart1, 'data2' => $inPart2 ));
$result = curl_exec($ch);
接收服务器上使用的代码:
...
$data2 = $_POST['data2'];
$data2 = html_entity_decode($data2);
$inputData2 = json_decode($data2); // NOTE: this line produces 'Syntax error' when $data2 grows beggir then app 15 kB.
...
先感谢大家!