2010-08-16 35 views
0

我试图设置一个PHP SoapClient来连接到一个wsdl ... CURL & WGET从服务器工作正常。soapclient或fopen不工作

如果我尝试使用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我只是想不通,为什么我可以通过卷曲/ wget的连接,而不是通过PHP。 allow_url_fopen设置为开

回答

2

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

本页是什么指向我在正确的方向:http://www.radiotope.com/content/safari-and-sonicwall