soapclient或fopen不工作

时间:2010-08-16 15:56:19

标签: soap-client php

我正在尝试设置PHP SoapClient以连接到wsdl ... 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.php 37

我无法弄清楚为什么我可以通过curl / wget连接,但不能通过PHP连接。 allow_url_fopen设置为开启

1 个答案:

答案 0 :(得分:2)

我解决了我的问题。这实际上是我的防火墙的一个问题。防火墙正在丢弃通过PHP发送的数据包,但是没有丢弃通过curl或wget。我为来自该服务器的所有流量添加了一条规则,并增加了数据包丢弃长度,现在一切正常!

此页面指出了我正确的方向:http://www.radiotope.com/content/safari-and-sonicwall