0

wsdlに接続するようにPHPSoapClientを設定しようとしています...サーバーからのCURLとWGETは正常に機能します。

soapclientを使おうとすると、以下のエラーメッセージが表示されます。

    $wsdl = 'http://pav3.cdyne.com/PavService.svc?wsdl';

try {
    $client = new SoapClient($wsdl, array('trace' => true, 'exceptions' => true));
} catch (SoapFault $f) {
    echo $client->_getLastRequest();
    echo $client->_getLastResponse();
    echo $f->getMessage();
} catch (Exception $e) {
    echo $client->_getLastRequest();
    echo $client->_getLastResponse();
    echo $e->getMessage();
}

エラーメッセージが表示されます:

<br /><b>Warning</b>:  SoapClient::SoapClient(http://pav3.cdyne.com/PavService.svc?wsdl) [<a href='soapclient.soapclient'>soapclient.soapclient</a>]: failed to open stream: HTTP request failed!  in <b>/coachflex/www/htdocs/CoachFlex/modules/other/checkAddress.php</b> on line <b>35</b><br />

<br /><b>Warning</b>:  SoapClient::SoapClient() [<a href='soapclient.soapclient'>soapclient.soapclient</a>]: I/O warning : failed to load external entity &quot;http://pav3.cdyne.com/PavService.svc?wsdl&quot; in <b>/coachflex/www/htdocs/CoachFlex/modules/other/checkAddress.php</b> on line <b>35</b><br />

上記のアドレスで単純にfopenを使用しようとすると、次のようになります。

警告:fopen(http://pav3.cdyne.com/PavService.svc?wsdl)[function.fopen]:ストリームを開くことができませんでした:HTTPリクエストが失敗しました!/coachflex/www/htdocs/CoachFlex/modules/other/checkAddress.php37行目

なぜcurl/wgetを介して接続できるのか、PHPを介して接続できないのか理解できません。 allow_url_fopenオンに設定されています

4

1 に答える 1

2

私は自分の問題を解決しました。それは実際には私のファイアウォールの問題でした。ファイアウォールはPHP経由で送信されたパケットをドロップしていましたが、curlまたはwget経由ではドロップされていませんでした。そのサーバーからのすべてのトラフィックにルールを追加し、パケットドロップの長さを増やしましたが、すべてが正常に機能しています。

このページは私を正しい方向に向けたものでした:http ://www.radiotope.com/content/safari-and-sonicwall

于 2010-08-16T18:29:06.043 に答える