ホームページ >バックエンド開発 >PHPチュートリアル >PHP SOAP Webサービス接続タイムアウトの問題

PHP SOAP Webサービス接続タイムアウトの問題

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-23 13:32:071732ブラウズ

最近、php SOAP Web サービスを構築する必要があり、テスト デモ コードを作成しました。コードは非常に簡単です。また、オンラインで多くのチュートリアルを読みましたが、難しい問題に遭遇しました。

サーバー 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 を直接書きたい場合 (クライアントと wsdl が同じフォルダーにある場合)、結果が返されます通常: 7HELLO

wsdl とすると コメントアウトした文のようにアドレスが http と書かれているとブラウザがタイムアウトを促します
致命的エラー: D:PHPWebwebclient.php 0 行目で最大実行時間 30 秒を超えました

誰か理由を説明できますか?


ディスカッションに返信 (解決策)

$soap = new SoapClient("http://localhost/web/service.php?wsdl", array('soap_version' => SOAP_1_2));

2 番目のパラメータはオプションです

$soap = new SoapClient("http://localhost/web/service.php?wsdl", array('soap_version' => SOAP_1_2));はオプションです


2 番目のパラメータを削除します。結果は同じです


wsdl ファイルのsoap:address によって返されたアドレス ポートが正しいかどうかを確認してください

WSDL-Endpoint:

fca292af301ddf87c3733d3788ef0d7f
8fc2118e6fb17855107c152916ad2ce2 f382cdfa13ebadffdba3a91c10676d5b cb96a342e38de7c396df5d2a4cb6c779
< ;/port>
07aad2482592b0629b89dc8fa8f9c2a7

私もこの問題に遭遇しました、答えてください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。