今天试运行PHP的SOAP客户服务器的时候,出现了如下错误提示:
Fatal error: Uncaught SoapFault exception: [Client]looks like we got no XML document in D:\jwr\www\oo2\soapClassClient.php:3
找了半天才找到原因,这里总结一下:原因1:服务器端代码出错,比如服务器端某一行代码缺少分号,仔细检查服务器端代码语法问题即可解决
原因2:服务器端不是类中的function 误用了 public 或者private关键字,这是一个愚蠢的语法错误,但是我中午就是犯了这个错误,一直找问题找了半天,去掉这个语法错误即可
原因3:客户端和服务器端的uri不一致也可能导致这个问题
原因4:确保服务器端没有任何输出,例如echo等字句,因为在和客户端交互的过程中,服务器端不能有任何显示输出
原因5:服务器端 <?PHP 的前面有空格或者空输出也是不可以的
原因6:服务器端逻辑有错亦可导致客户端无法读取到数据
总结:如果遇到如上问题,第一步:在服务器端运行一个服务器端的代码实例,测试服务器端的语法和逻辑确定没错;第二步:运行客户端实例,确定客户端没有语法和逻辑错误即可找到问题。因为发生如上错误提示的时候大多数是服务器端错误导致。