我尝试了一切我能想到的无济于事,并希望你能提供帮助。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文件。
你有权限访问服务器吗? – hek2mgl
是的,我的确如此。 – jezmck
如果您尝试使用'wget'https://api.bullhornstaffing.com/webservices-2.0/?wsdl'',它工作吗? (请注意'https') – hek2mgl