最近需要打一个php soap webservice 写了个测试的demo 代码非常简单
网上也看了不少教程 碰到一个棘手的问题
服务端 service.php
SOAP_1_2));$server->setClass("service");$server->handle();?>
客户端 client.php
SOAP_1_2));$soap = new SoapClient("TestSoap.wsdl", array('soap_version' => SOAP_1_2));echo $soap->Add(1,6);echo $soap->HelloWorld()."
";?>
wsdl已经生成 没有问题
现在的问题是 客户端代码中
如果想现在这样直接写TestSoap.wsdl(client和wsdl在同个文件夹下)就能正常返回结果:7HELLO
如果把wsdl的地址写成http的 像注释掉的那句一样 浏览器就提示超时
Fatal error: Maximum execution time of 30 seconds exceeded in D:\PHPWeb\web\client.php on line 0
有没有大神能够解释一下为什么
回复讨论(解决方案)
$soap = new SoapClient("http://localhost/web/service.php?wsdl", array('soap_version' => SOAP_1_2));
第二个参数可以不要
$soap = new SoapClient("http://localhost/web/service.php?wsdl", array('soap_version' => SOAP_1_2));
第二个参数可以不要
第二个参数删了结果还是一样
看看你的wsdl文件的soap:address返回的地址端口是否正确的
WSDL-Endpoint:
我也遇到这个问题,求解答。
本文原创发布php中文网,转载请注明出处,感谢您的尊重!