2013-07-24 83 views
3

我尝试了一切我能想到的无济于事,并希望你能提供帮助。SOAP:致命错误..无法连接到主机

我已经从另一个web开发者手中接过一个网站,所以我正在处理现有的代码。

该代码适用于我自己的开发服务器(我的Win7机器上的debian VM),但不在活动服务器上(WHM/cPanel admin'd REDHAT Enterprise 5.4 x86_64标准)。

我得到的电话后,下面的错误$BHclient->startSession

Fatal error: Uncaught SoapFault exception: [HTTP] Could not connect to host in /home/aap3r/public_html/soap_test.php:60 
Stack trace: 
#0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'https://api.bul...', '', 1, 0) 
#1 /home/aap3r/public_html/soap_test.php(60): SoapClient->__call('startSession', Array) 
#2 /home/aap3r/public_html/soap_test.php(60): SoapClient->startSession(Object(stdClass)) 
#3 {main} 
    thrown in /home/aap3r/public_html/soap_test.php on line 60 

的WDSL文件下载好(尽管它似乎有错误的MIME类型)。

由于完全相同的测试代码在一台服务器上工作,但没有另一台服务器,我认为这是一个防火墙问题,但主机拒绝这个问题。

相关的代码:

$url = "http://api.bullhornstaffing.com/webservices-2.0/?wsdl"; 

ini_set('soap.wsdl_cache_enabled',1); 
ini_set('soap.wsdl_cache_ttl',1); 

$username = "xxx"; 
$password = "xxx"; 
$apiKey = "xxxx"; 

$session_request = new stdClass(); 
$session_request->username = $username; 
$session_request->password = $password; 
$session_request->apiKey = $apiKey; 

$BHclient = new SoapClient($url, array("trace" => true, "exception" => false)); 

$API_session = $BHclient->startSession($session_request); 

print_r($API_session); 

phpinfo确认SOAP安装,我尝试了在操作面板上所呈现的各种实施/安装方法。

我已更新到PHP版本5.3.27和Apache到2.2.25。

任何帮助将非常感激。


更新:我找到了解决方法。无论出于什么原因生产服务器无法连接到HTTP * S *,因此在手动编辑WDSL文件以替换协议后,我复制并重新托管了WDSL文件。

+0

你有权限访问服务器吗? – hek2mgl

+0

是的,我的确如此。 – jezmck

+1

如果您尝试使用'wget'https://api.bullhornstaffing.com/webservices-2.0/?wsdl'',它工作吗? (请注意'https') – hek2mgl

回答

2

我会记录网络流量与tcpdump

tcpdump -s65535 -iYOUR_INTERFACE -w soap.pcap 

您可以分析使用wireshark交通(soap.pcap)。

相关问题