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

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

WBOY
リリース: 2016-06-23 13:32:07
オリジナル
1725 人が閲覧しました

最近、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:


<サービス名="StockQuoteService" > <ポート名="StockQuotePort" バインディング="tns:StockQuoteBinding">
< ;/port>


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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート