我正在使用以下代码向网站发送POST请求以聚合一些Json。我很成功,只得到部分数据。 我应该得到的Json包含两个对象: 第一个我完成了。 第二个是一个字符串,一个很长的字符串,我只能得到它的开头。
我想我可能需要定义返回值的最大长度或者某些东西但是相同的代码(使用不同的URL)会得到另一个Jsons,它们也包含非常长的字符串对象没有问题。
有人可以帮我理解我在这里缺少的东西吗?
$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);
答案 0 :(得分:0)
好吧,将我的PHP版本更新到最新版本就可以了。 我测试代码的Linux机器运行的是最新版本的PHP,这就是为什么它在那里工作的原因。