我正在尝试设置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 "http://pav3.cdyne.com/PavService.svc?wsdl" 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
设置为开启
答案 0 :(得分:2)
我解决了我的问题。这实际上是我的防火墙的一个问题。防火墙正在丢弃通过PHP发送的数据包,但是没有丢弃通过curl或wget。我为来自该服务器的所有流量添加了一条规则,并增加了数据包丢弃长度,现在一切正常!
此页面指出了我正确的方向:http://www.radiotope.com/content/safari-and-sonicwall