Всем привет.
Пытаюсь отправить POST запрос на удаленный сайт при помощи curl. Удаленный сайт делает редирект (на свою https версию). Curl вместо того чтобы послать POST на новый url, посылает GET без параметров. Как заставить curl послать POST?
Если посылаю POST на https версию (то есть редиректа не происходит), все отрабатывает нормально.
Функция, которая посылает запрос:
function curl_query($url, $username, $password, $payload) {
$additionalHeaders = "";
$process = curl_init($url);
curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded',$additionalHeaders));
curl_setopt($process, CURLOPT_HEADER, false);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process, CURLOPT_POSTFIELDS, $payload);
curl_setopt($process, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($process, CURLOPT_MAXREDIRS, 4);
curl_setopt($process, CURLOPT_RETURNTRANSFER, true);
curl_setopt($process, CURLOPT_SSL_VERIFYPEER, false);
$return = curl_exec($process);
return $return;
}
Часть .htaccess, обеспечивающая редирект:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}