У меня проблема с запущенными методами с SOAP. Я использую Apache и PHP.PHP Мыльный вызов через https
это PHP код:
$opts = array(
'ssl' => array('ciphers'=>'RC4-SHA')
);
ini_set('soap.wsdl_cache_enabled',0);
ini_set('soap.wsdl_cache_ttl',0);
$client = new SoapClient('https://host?wsdl', array (
'stream_context' => stream_context_create($opts),
"trace" => 1,
"exceptions" => 0,
"connection_timeout"=>2000));
var_dump($client->__getFunctions());
$params = array ("key" => "value");
$result = $client->availabeFunction($params);
var_dump($result);
__getFunctions()
Это возвращает меня все доступные функции.
Тогда, когда я пытаюсь вызвать доступную функцию с параметрами.
возвращает мне сообщение об ошибке Strage:
public 'faultstring' => string 'Could not connect to host' (length=25)
public 'faultcode' => string 'HTTP' (length=4)
Так я полагаю, что по некоторым причинам подключаются к через HTTP, но не через HTTPS.
Я просмотрел веб-страницы, и в некоторых случаях они используют значение local_cert
с файлом .pem.
Это не так ли? Или я пропустил что-то еще?
Хотя это «работает», вы абсолютно ** НЕ хотите делать это так. Зачем? Поскольку 'https: //' wrapper отключает проверку сертификатов однорангового сервера по умолчанию до PHP 5.6. Исключив контекст ssl, который вы в основном сказали, * «Мне все равно, кто на другом конце этой передачи, я им доверяю полностью». * Если вы имеете дело с данными, вы не хотите, чтобы я был способный читать или изменять это, не является правильным решением. – rdlowrey