2011-03-10 98 views
0

我已经建立了一个PHP程序,它使用curl调用RESTful Web服务并获取格式良好的XML。当我在命令行上执行此操作时,我得到正确的响应,但是当我在PHP中使用curl_exec()执行此操作时,我只获得了大约一半的响应。答复基本上被缩短了。PHP curl_exec返回部分响应

有没有人知道这个原因?

代码如下:

 $url = $this->dspace_url . '/dspace/search.xml?query=' . urlencode($query); 
     $sac_curl = curl_init(); 
     error_log('query url is'.$url); 
     curl_setopt($sac_curl, CURLOPT_HTTPGET, true); 
     curl_setopt($sac_curl, CURLOPT_URL, $url); 
     curl_setopt($sac_curl, CURLOPT_VERBOSE, true); 
     curl_setopt($sac_curl, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($sac_curl, CURLOPT_HEADER, false); 
     $resp = curl_exec($sac_curl);    
     error_log('response is '.$resp); 

谢谢, 马克

+0

是CURLOPT_RETURNTRANSFER吗? – kjy112 2011-03-10 17:01:09

+0

显示一些卷曲代码。这个问题可能是一个SET_OPT。 – Belinda 2011-03-10 17:01:39

+0

你正在使用哪个php版本? – kjy112 2011-03-10 17:22:12

回答

0

看起来你正在使用的error_log功能保存到错误日志你的回应。

这似乎是有限制的(默认为1024字节),但您可以使用log_errors_max_len属性在您的php.ini文件中更改它。尝试将其设置为更大的内容,然后查看是否找到任何区别。

+0

谢谢Jaitsu - 是的,我的代码正在工作,但由于error_log的限制,我只看到部分XML - doh! – 2011-03-11 10:50:35