>  기사  >  백엔드 개발  >  PHP SOAP webservice 连接超时的问题

PHP SOAP webservice 连接超时的问题

WBOY
WBOY원래의
2016-06-23 13:32:071694검색

最近需要打一个php soap webservice 写了个测试的demo 代码非常简单
网上也看了不少教程 碰到一个棘手的问题

服务端 service.php

<?phpclass service{    public function HelloWorld()    {        return "Hello";    }    public  function Add($a,$b)    {        return $a+$b;    }}$server=new SoapServer('TestSoap.wsdl',array('soap_version' => SOAP_1_2));$server->setClass("service");$server->handle();?>


客户端 client.php
<?php//$soap = new SoapClient("http://localhost/web/TestSoap.wsdl", array('soap_version' => SOAP_1_2));$soap = new SoapClient("TestSoap.wsdl", array('soap_version' => SOAP_1_2));echo $soap->Add(1,6);echo $soap->HelloWorld()."<br />";?>


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:





我也遇到这个问题,求解答。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.