这篇文章介绍的内容是关于php5.5.12 下调试 SOAP 报错信息,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

今天用soap调试的时候,一直出现如下错误

{ "respcode": 202, "respmsg": "looks like we got no XML document", "data": "" }

找了各种方法没解决,我的代码如下:

服务器端:

function __construct() { parent::__construct(); $this->load->model('baogaolist'); $this->server = new SoapServer(null, ['uri' => '']); } function checkreport() { $this->load->model('baogaolist'); $this->server->setObject($this->baogaolist); $this->server->handle(); }

客户端调用:

$url = $this->config->item('car_battery_check_url'); //获取信息地址 try { $a = new SoapClient(null, [ 'location' => $url . '/report/checkreport', 'uri' => '' ]); $detail = $a->get_detail($this->storeid, $check_id); } catch (SoapFault $e) { resp_msg(202,$e->getMessage()); }

在php5.4.44环境下就能成功拿到数据,但是在php5.5.12就会一直报错

最后,在php5.5.12环境下,将配置 uri 补全,问题解决

function __construct() { parent::__construct(); $this->load->model('baogaolist'); $this->server = new SoapServer(null, ['uri' => ':8000/index.php/report/checkreport']); }try { $a = new SoapClient(null, [ 'location' => $url . '/report/checkreport', 'uri' => ':8000/index.php/report/checkreport' ]); $detail = $a->get_detail($this->storeid, $check_id); } catch (SoapFault $e) { resp_msg(202,$e->getMessage()); }

客户端和服务器端都加上具体的地址才行