Настройка длины контента в скручиваемом HTTP посте

Я делаю HTTP-сообщение на URL, чтобы получить содержимое файла, используя php и curl следующим образом:

    $url = SITE_URL . 'filename.html';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_FAILONERROR, TRUE);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3B48b Safari/419.3');
$content = curl_exec($curl);
$cerr = curl_error($curl);
$info = curl_getinfo($curl);
curl_close($curl);

Это работало нормально на одном сервере, но когда я перешел на новый сервер, он был заблокирован правилом ModSec 390616 — «Запрос на публикацию должен иметь заголовок длины содержимого». В качестве быстрого исправления у меня было это правило занесено в белый список, но я бы предпочел не делать этого. Итак, как мне добавить заголовок длины содержимого в приведенный выше код, пожалуйста?

0

Решение

Вам нужно пройти Content-Length в CURLOPT_HTTPHEADER, Похоже, вы не отправляете контент, поэтому Content-Length будет 0. Итак:

curl_setopt($curl, CURLOPT_HTTPHEADER, array(
"Content-Length: 0"));
0

Другие решения

Других решений пока нет …