【问题标题】:Why can't Soap connect to HTTPS?为什么 Soap 无法连接到 HTTPS?
【发布时间】: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

}

【问题讨论】:

    标签: php ubuntu soap ssl https


    【解决方案1】:

    WireSharktcpdump 或类似的工具可能是您最好的选择,以了解 http 请求出了什么问题。您将无法在 PHP 中调试来自客户端代码的实际 http 请求,因为这一切都在 SOAP 扩展(用 C 编写)中。

    【讨论】:

      【解决方案2】:

      确保您在 php.ini 中启用了 openssl 扩展。

      ;for windows
      extension=php_openssl.dll 
      ;for unix 
      extension=openssl.so
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-30
        • 2020-06-04
        • 1970-01-01
        • 1970-01-01
        • 2022-09-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多