所以,我有一个发送大型JSON对象的php脚本,这是我用来执行此操作的代码。
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_VERBOSE, true);
$json_response = curl_exec($curl);
现在,当数据很小时,请求会顺利进行。但是,当json对象变得庞大时,突然无法发送数据,而是显示" Content-Length:0"在请求标头中,好像它不包含该对象。
我假设数据有多大是有限的。有没有办法绕过那个?
我搜索过类似的问题,并找到了发送文件的解决方案。但我在这里的对象是数据库的结果集,因此我更愿意将文件方法作为最后的手段。
感谢。
答案 0 :(得分:0)
所以基本上你已经拥有了HTTPHEADER,但是你错过了Content-length,试试这样:
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-length:' . strlen($data)));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_VERBOSE, true);
$json_response = curl_exec($curl);