欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php5.5.12 下调试 SOAP 报错信息

程序员文章站 2022-03-07 09:25:21
...
这篇文章介绍的内容是关于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 报错信息 的详细内容,更多请关注其它相关文章!