时间:2021-07-01 10:21:17 帮助过:21人阅读
query($strGetList); $results = array(); $xmlString = "\n"; $xmlString .="\n"; while( $rows = $GLOBALS['le']->fetch_assoc() ) { $results[] = $rows; } foreach($results as $key=>$val) { $xmlString .="\n"; foreach($val as $k=>$v ) { if(strlen($v)>0) { $v = htmlspecialchars($v); $xmlString .=" \n"; } $xmlString .="\n"; return $xmlString; } } //$p = new person; //echo $p->getInfo();//经测试xml中可以显示所有数据 --- 分割线 --- 'abcd','encoding'=>'UTF-8')); $server->setClass('person'); $server->handle(); --- 分割线 --- 'http://192.168.1.126:102/server.php', 'uri'=>'abcd', 'encoding' => 'UTF-8', )); $s1 =$soap->__soapCall('getInfo',array()); echo $s1; } catch(Exction $e) { echo $e->getMessage(); }$v \n"; } } $xmlString .="
今天在想使用soap开发相关接口给合作的公司调用,但是遇到了这个错误。排查了很久,在google也查了很久,但都不是我所遇到的问题。不过我最终错误发现跟soapserver传输的数据量的大小有关系(不知道这个描述是否恰当)。当我从数据库取10条数据,那么就可以很容易的使用soapclient获取到数据,但是当我从数据库里查询1000条数据的时候就会报错了(“Fatal error: Uncaught SoapFault exception: [Client] looks like we got no XML document in……”)!如果我直接运行person.class.php程序是可以显示完整的xml文档的。这根服务器的环境配置会有关系吗?我对于soap认识并不深,也只是现学现卖。希望有经验的前辈们可以指点一二。多谢了!
以下是我的程序代码:
query($strGetList); $results = array(); $xmlString = "\n"; $xmlString .="\n"; while( $rows = $GLOBALS['le']->fetch_assoc() ) { $results[] = $rows; } foreach($results as $key=>$val) { $xmlString .="\n"; foreach($val as $k=>$v ) { if(strlen($v)>0) { $v = htmlspecialchars($v); $xmlString .=" \n"; } $xmlString .="\n"; return $xmlString; } } //$p = new person; //echo $p->getInfo();//经测试xml中可以显示所有数据 --- 分割线 --- 'abcd','encoding'=>'UTF-8')); $server->setClass('person'); $server->handle(); --- 分割线 --- 'http://192.168.1.126:102/server.php', 'uri'=>'abcd', 'encoding' => 'UTF-8', )); $s1 =$soap->__soapCall('getInfo',array()); echo $s1; } catch(Exction $e) { echo $e->getMessage(); }$v \n"; } } $xmlString .="
从SoapClient的异常"[Client] looks like we got no XML document"来看应该是响应有问题,所以首要的是查看响应消息是什么,有几种方案可以协助你定位问题:
别用soap,把接口发给你的数据dump出来看看。估计是网络传输出了啥问题,数据没抓全,xml不完整,没法解析。
你问题解决了吗?求指导