今天用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' => 'http://172.16.4.29:8000/index.php/report/checkreport']);
}
try {
$a = new SoapClient(null, [
'location' => $url . '/report/checkreport',
'uri' => 'http://172.16.4.29:8000/index.php/report/checkreport'
]);
$detail = $a->get_detail($this->storeid, $check_id);
} catch (SoapFault $e) {
resp_msg(202,$e->getMessage());
}
客户端和服务器端都加上具体的地址才行