PHP SOAP webservice 连接超时的问题

WBOY
Libérer: 2016-06-23 13:32:07
original
1696 Les gens l'ont consulté

最近需要打一个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();?>
Copier après la connexion


客户端 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 />";?>
Copier après la connexion


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:





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

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal