내 일상적인 작품 잘 HTTPS에 요청을 보낼 수 없습니다 만, 최근에는 HTTPS로 업그레이드하는 데 필요한 더 이상 노력하고 있습니다. 나는 무슨 일이 일어나고 있는지 전혀 모르며 웹상에서 많은 다른 코드를 시도했다.는 soapclient 및 http 프로토콜에 따라
오류 메시지가 catch되지 않은 SOAPFault의 예외입니다 : [HTTP] 호스트에 연결할 수 없습니다 [...] 내가 PHP를 v.5.6를 사용하고 있지만,이 솔루션은 5.3도 작동하는 경우 것이 바람직 할 것이다
. 37. 여기
, 당신의 서버가openssl
라이브러리가있는 경우
<?php
error_reporting(E_ERROR | E_PARSE);
ini_set('display_errors', 1);
ini_set('soap.wsdl_cache_enabled',0);
ini_set('soap.wsdl_cache_ttl',0);
ini_set('default_socket_timeout', 1000);
$url_wsdl ="https://exampleservice.cls?WSDL=1&CacheUserName=myusername&CachePassword=mypassword&CacheNoRedirect=1";
print 'Starting routine';
//logging in
$curl = curl_init($url_wsdl);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
// get cookies
preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $result, $matches);
$cookies = array();
foreach($matches[1] as $item) {
parse_str($item, $cookie);
$cookies = array_merge($cookies, $cookie);
}
curl_close($curl);
print 'Curl....ok. Cookies ok<br>';
$options = array(
'trace' => 1
, 'cache_wsdl' => WSDL_CACHE_NONE
, 'user_agent' => 'PHP WS'
, 'ssl_method' => SOAP_SSL_METHOD_SSLv3
);
$soapClient = new SoapClient($url_wsdl,$options );
print 'SoapClient....ok<br>';
//sending cookies to soapclient
foreach ($cookies as $name => $value) {
print '------> sending cookies: '. $value . '<br>';
$soapClient->__setCookie($name, $value);
}
print 'SetCookies....ok<br>';
$data = array('TesteInterface' => array('Request' => array('Mensagem' => 'teste')));
$response = $soapClient->__soapCall("TesteInterface",$data);
print 'SoapCall....ok<br>';
print 'Response:<br>';
print_r($response);
?>
openssl이 phpinfo()에서 활성화되었습니다. 옵션 섹션을 코드로 개선했지만 여전히 작동하지 않습니다. – danielarend
서버의 openssl은 어떻습니까? 어떤 버전이 있습니까? – Edwin
openssl v 1.0.2k-fips – danielarend