【发布时间】:2013-12-12 02:07:43
【问题描述】:
我正在尝试连接到 HTTPS location。目前我收到Could not connect to host 错误。我正在两台 Ubuntu 服务器上进行测试。此错误发生在一个不在现场的 Ubuntu 服务器上。站点开发服务器上的另一台服务器工作正常。我搜索了服务器文件,但尚未发现系统中会导致此类问题的任何差异。我还没有找到有类似问题的人,并尝试了许多与同一错误消息相关的不同解决方案(例如禁用 wsdl 缓存等)。
- HTTP 在两台服务器上都能正常工作
- HTTPS 在一台服务器上工作
- php.ini 文件相同
- OpenSSL 和 Soap 显示在
phpinfo();中启用(HTTP 有效,所以我认为 Soap 没问题) -
wget https://exampleurl.com/services/SessionService在收到错误的服务器上工作正常
接下来我应该看什么?
我可以做哪些测试?
如何获取有关错误的附加信息?
$sessionService = new SessionService('/path/to/local/file/SessionService.wsdl', array(
'location' => "https://exampleurl.com/services/SessionService"
));
try {
// throws SoapFault error
$token = @Login($sessionService, $username, $password);
}
catch (SoapFault $sf) {
//echo $sf->getMessage());
//echo $sf;
}
SessionService 类:
class SessionService extends SoapClient {
private static $classmap = array(
'login' => 'login',
'loginResponse' => 'loginResponse',
...
);
public function SessionService($wsdl = "http://localhost:8080/services/SessionService?wsdl", $options = array()) {
foreach (self::$classmap as $key => $value) {
if (!isset($options['classmap'][$key])) {
$options['classmap'][$key] = $value;
}
}
parent::__construct($wsdl, $options);
}
//fails here
public function login(login $parameters) {
return $this->__soapCall('login', array($parameters), array(
'uri' => 'http://example.url.com',
'soapaction' => ''
)
);
}
//... other functions
}
【问题讨论】: