@entermix

Как обойти ошибку 405 Not Allowed при запросе через сURL?

Пытаюсь получить страницу таким способом:

function request($url = '', $method = 'GET', array $fields = array())
{
    $ch = curl_init();

    curl_setopt_array($ch, array(
        CURLOPT_USERAGENT =>
            'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_POST => ($method == 'POST'),
        CURLOPT_POSTFIELDS => $fields,
        CURLOPT_URL => $url,
        CURLOPT_REFERER => $url,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_COOKIEJAR => dirname(__file__) . '/cookie.txt',
        CURLOPT_COOKIEFILE => dirname(__file__) . '/cookie.txt',
        ));

    $header['errno'] = curl_errno($ch);
    $header['errmsg'] = curl_error($ch);
    $header['header'] = curl_getinfo($ch);
    $header['content'] = curl_exec($ch);

    echo '<pre>';
    print_r($header);
    echo '</pre>';
    exit();

    curl_close($ch);

    return $header['content'];
}

request('http://www.segodnya.ua/politics/pnews/rada-provalila-golosovanie-za-zakonoproekt-o-speckonfiskacii-neobosnovannyh-aktivov-777709.html'); // 405 Not Allowed


Но получаю ошибку 405 Not Allowed

Мне удается получить, например следующие страницы:
http://www.segodnya.ua/politics.html
http://www.segodnya.ua/politics/p2.html


Но конкретно страницу с полным описанием - нет.
Пробовал передавать все заголовки, однако так и не получилось получить контент.
Если отправлять запрос при помощи Fiddler - все ок. Что за защита такая?
  • Вопрос задан
  • 1327 просмотров
Решения вопроса 1
alsopub
@alsopub
Уберите POST - CURLOPT_POST и CURLOPT_POSTFIELDS.
Вижу что вы что-то подправили с предыдущего вопроса.
В общем если убрать обе эти опции - то все работает.
Дальше, думаю, разберетесь.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы