curl и IIS - 405 Method Not Allowed

Discussion in 'PHP' started by Дикс, 28 Jul 2009.

  1. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    скачиваю курлом
    http://www.destroyers.org/smrdd/USS_Harry_E._Yarnell.html

    PHP:
        $as_curl->rst();
        
    $as_curl->set(CURLOPT_URLtrim($url));
        
    $return $as_curl->exec();
    ИИС возвращает 405 и не отдаёт страницу.

    Нагуглил только такое:
     
  2. BlackSun

    BlackSun Banned

    Joined:
    1 Apr 2007
    Messages:
    989
    Likes Received:
    1,168
    Reputations:
    446
    Попробуй с этим:
    $as_curl->set(CURLOPT_POST, 0);
    $as_curl->set(CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5');
     
    3 people like this.
  3. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    не помогло
     
  4. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Дикс Смотри исходник класса, и ищи строку с CURLOPT_POST. Он должен быть 0. Он скорее всего принудительно включен
     
    _________________________
  5. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    у курла странная особенность.

    когда я создаю массив его опций (CURLOPT_POSTFIELDS, CURLOPT_POST и т.п.)
    и задаю их через

    curl_setopt_array($this->ptr, $this->options);

    он работает так, словно CURLOPT_POST = 1
    хотя при распечатке опций прямо перед exec видно, что он = 0

    если же добавить строку
    curl_setopt($this->ptr, CURLOPT_POST, 0);

    напрямую перед exec - только тогда всё нормально.
    тоже самое бывало у меня и с другими опциями, типа CURLOPT_RETURNTRANSFER

    в чем может быть дело?
     
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Дикс Вопрос в том, что именно вы задаете, пример бы.

    Например такой скрипт будет отправлять ПОСТ
    PHP:
            curl_setopt_array($ch
            array(
                
    CURLOPT_URL => $url,
                
    CURLOPT_POSTFIELDS => ''
            
    ));
    Хоть POSTFILEDS - строка нулевой длины, а CURLOPT_POST не установлен. Обычно следует не устанавливать параметры ни в какое значение, если хочется, чтобы использовались умолчания. Ну или устанавливайте параметр CURLOPT_POST _после_ POSTFIELDS
     
    _________________________
  7. delux

    delux Elder - Старейшина

    Joined:
    11 Jun 2008
    Messages:
    29
    Likes Received:
    9
    Reputations:
    4
    дело в иссе скорее даже
    какая версия?