#php #http-post
#php #http-post
Вопрос:
Я пытаюсь отправить post-запрос на URL-адрес с помощью HTTPS, и я продолжаю получать сообщение об ошибке.
Это мой код:
function do_post_request($data, $optional_headers = null) {
$params = array('http' => array(
'method' => 'POST',
'content' => http_build_query($data)
));
$url = 'https://url';
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
fpassthru($fp);
if (!$fp) {<--- falls here
throw new Exception("Problem with $url, $php_errormsg");
}
$response = @stream_get_contents($fp);
if ($response === false) {
throw new Exception("Problem reading data from $url, $php_errormsg");
}
return array(substr(trim(strip_tags($response)),0,3), trim(strip_tags($response)));
}
Ошибка, которую я получаю, это:
Fatal error: Uncaught exception 'Exception' with message 'Problem with https://gateWay.pelecard.biz/PayProcess/English, ' in C:PelecardProjectsaspsitePostPHPPayEng.php:103 Stack trace: #0 C:PelecardProjectsaspsitePostPHPPayEng.php(83): do_post_request(Array) #1 {main}
Я где-то читал, что мне нужно включить расширение php OpenSSL, может быть?
Комментарии:
1. Отключите функции (удалите
@
перед ними), а затем посмотрите, какие ошибки возникают.
Ответ №1:
Решаемая, моя конфигурация https не была хорошей.
Выполнил следующие шаги
1. Переименуйте php.ini-production в php.ini (в папке php)
2. Отредактируйте php.ini и раскомментируйте extension_dir=ext.
3. раскомментировать extension=php_openssl.dll .
4. добавлено libeay32.dll и ssleay32.dll чтобы C:WINDOWSsystem32inetsrv