проблема с отправкой cURL запроса больше 1кб

Тема в разделе "PHP", создана пользователем HalliK, 12 янв 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. HalliK

    HalliK Постоялец

    Регистр.:
    4 фев 2007
    Сообщения:
    117
    Симпатии:
    166
    столкнулся с проблемой отправки пост-запроса.
    отловил ответ снифером, выдает ошибку 417 , превышение времени ожидания.
    проверил, если размер запроса 1021 байт, то все проходит удачно, если 1025 ничего не получается. Как решить данную проблему?

    вот функции которые подключены в курле:
    Код:
    $post2 = curl_init();
    	$head  = array(
            "Host: host.ru",
    		"Accept:text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
            "Accept-Language:ru-RU,ru,en-US,en",
            "Accept-Charset:windows-1251,*,utf-8",
            //"Accept-Encoding:gzip,deflate",
            "Keep-Alive: 300",
            //"Connection: keep-alive",
            "Content-Type:application/x-www-form-urlencoded",
    		"Content-Length:".strlen($postdata)
    	);
        curl_setopt($post2, CURLOPT_HTTPHEADER, $head);
        curl_setopt($post2, CURLOPT_URL, "http://");
        curl_setopt($post2, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($post2, CURLOPT_POST, 1);
    	curl_setopt($post2, CURLOPT_POSTFIELDS, $postdata);
    	//curl_setopt($post, CURLOPT_COOKIE, "cookie.txt");
    	curl_setopt($post2, CURLOPT_COOKIEJAR, "cookie.txt");
        curl_setopt($post2, CURLOPT_COOKIEFILE, "cookie.txt");
        curl_setopt($post2, CURLOPT_REFERER, "http://superclips3.mylivepage.ru/about?description=edit&about_navigation_form=do&about_navigaion_service=1");
        curl_setopt($post2, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.4.154.29 Safari/525.19");
        $all = curl_exec($post2);
        //curl_close($post2);
     
  2. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    "Content-Length:".strlen($postdata) - это лишнее, curl сам добавляет его.

    PS для код есть специальный тег, пользуйся им для листингов.
     
    HalliK нравится это.
  3. HalliK

    HalliK Постоялец

    Регистр.:
    4 фев 2007
    Сообщения:
    117
    Симпатии:
    166
    пост запрос всё равно не отправляется((
    может еще какие-нить опции в курле надо добавить?
    подстава какая то((
     
  4. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    А разве curl_setopt($post2, CURLOPT_HTTPHEADER, $head); вообще нужно? Я думаю трабла в самом пост запросе. Попробуй отправить пост массивом, если не поможет, строкой.
     
    HalliK нравится это.
  5. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    Что то я пропустил про ошибку 417...
    Сервер тебе скорее всего отдает 100 Continue
    Не вдаваясь в подробности, добавь в заголовок "Expect:"(без кавычек) и все должно быть нормлаьно.
     
    HalliK нравится это.
  6. HalliK

    HalliK Постоялец

    Регистр.:
    4 фев 2007
    Сообщения:
    117
    Симпатии:
    166
    Мужик спасибо!!!
    всё заработало!!!:yahoo:
    Если не сложно расскажи что это за зверь expect, где про него почитать можно, от гугла толку чуть.:thenks:
     
  7. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Ты его готовить не умеешь :)
    Читай RFC 2616
     
Статус темы:
Закрыта.