使用POST和cURL获取数据的PHP检索部分数据

使用POST和cURL获取数据的PHP检索部分数据,php,json,post,curl,http-post,Php,Json,Post,Curl,Http Post,我使用以下代码向网站发送POST请求,以聚合一些Json。我成功了,只得到了部分数据。 我应该得到的Json包含两个对象: 我完成的第一个。 第二个是字符串,非常长,我只知道它的开头 我想我可能需要定义返回值的最大长度之类的东西,但是使用不同URL的同一代码会得到另一个JSON,它也包含非常长的字符串对象,这没问题 有人能帮我理解我在这里遗漏了什么吗 $header = array(); $header[] = 'Accept:application/json, text/javascript,

我使用以下代码向网站发送POST请求,以聚合一些Json。我成功了,只得到了部分数据。 我应该得到的Json包含两个对象: 我完成的第一个。 第二个是字符串,非常长,我只知道它的开头

我想我可能需要定义返回值的最大长度之类的东西,但是使用不同URL的同一代码会得到另一个JSON,它也包含非常长的字符串对象,这没问题

有人能帮我理解我在这里遗漏了什么吗

$header = array();
$header[] = 'Accept:application/json, text/javascript, */*; q=0.01';
$header[] = 'Accept-Encoding:gzip,deflate,sdch';
$header[] = 'Accept-Language:en-US,en;q=0.8,he;q=0.6,ru;q=0.4';
$header[] = 'Connection:keep-alive';
$header[] = 'Host:www.host.com';
$header[] = 'Origin:http://www.origin.com';
$header[] = 'Referer:http://www.site.com/something/';
$header[] = 'X-Requested-With:XMLHttpRequest';

$data = "neededData...";

$process = curl_init($url);
curl_setopt($process, CURLOPT_HTTPHEADER, $this->headers);
curl_setopt($process, CURLOPT_HEADER, $this->headers_html);
curl_setopt($process, CURLOPT_USERAGENT, $this->user_agent);
if ($this->cookies == TRUE)
    curl_setopt($process, CURLOPT_COOKIEFILE, $this->cookie_file);
if ($this->cookies == TRUE)
    curl_setopt($process, CURLOPT_COOKIEJAR, $this->cookie_file);
curl_setopt($process, CURLOPT_ENCODING, $this->compression);
curl_setopt($process, CURLOPT_TIMEOUT, $this->timeout);
curl_setopt($process, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($process, CURLOPT_POSTFIELDS, $data);
curl_setopt($process, CURLOPT_POST, 1);

$return = curl_exec($process);

嗯,将我的PHP版本更新到最新版本就成功了。
我测试代码的Linux机器运行的是最新版本的PHP,这就是它在那里工作的原因。

您是否尝试使用另一个工具(比如unix curl)发出请求?没有。仅使用html表单尝试。。一个小测试表明,同样的代码在Linux上获得了完整的Json,但在Windows8上没有。