我有一个通过SOAP调用Web服务的PHP网站。它使用nusoap调用WS。
它在我的本地计算机和另一台服务器上工作得很好,但在Heroku中,引发了以下异常:
HTTP错误:cURL错误:27:SSL:无法创建上下文:错误:140A90C4:SSL 例程:SSL_CTX_new:传递null ssl方法 网址:https://xxx/yyy.Services content_type:
代码是:
// Primeiro Try
$obClient = new nusoap_client ( $url_webservice, 'wsdl' );
$obClient->setCurlOption(CURLOPT_SSLVERSION, 4);
$erro = $obClient->getError ();
if ($erro) {
throw new Exception ( "Erro ao conectar", 9999 );
}
$retorno = $obClient->call ( $funcao_chamada, $parametros );
if ($obClient->fault != '') {
$error = $obClient->error_str;
throw new Exception ( utf8_encode ( $error ), 9997 );
}
$erro = $obClient->getError ();
if ($erro) {
$error = $obClient->error_str;
throw new Exception ( utf8_encode ( $error ), 9998 );
}
return $retorno;
}
它发生了什么?
答案 0 :(得分:4)
我使用的是nusoap.php,我调用方法setCurlOption传递了以下参数:
setCurlOption(CURLOPT_SSLVERSION,4)
当我评论这一行时,问题得到解决。