php5.5.12 下调试 SOAP 报错信息

不言
不言原创
2023-03-25 06:08:011090浏览

这篇文章介绍的内容是关于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' => '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());
        }

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

相关推荐:

PHP通过SOAP实现WebService



以上就是php5.5.12 下调试 SOAP 报错信息 的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。