PDA

Просмотр полной версии : curl и IIS - 405 Method Not Allowed


Дикс
28.07.2009, 20:32
скачиваю курлом
http://www.destroyers.org/smrdd/USS_Harry_E._Yarnell.html


$as_curl->rst();
$as_curl->set(CURLOPT_URL, trim($url));
$return = $as_curl->exec();


ИИС возвращает 405 и не отдаёт страницу.

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


405 Method Not Allowed

This error is generally caused by IIS servers that cannot properly execute a request to the .php file extension.

Common Causes:

Testing Server URL Prefix is incorrect and does not point directly into the site folder on the testing server

BlackSun
28.07.2009, 21:23
Попробуй с этим:
$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');

Дикс
29.07.2009, 07:50
не помогло

Gifts
29.07.2009, 10:09
Дикс Смотри исходник класса, и ищи строку с CURLOPT_POST. Он должен быть 0. Он скорее всего принудительно включен

Дикс
29.07.2009, 11:38
у курла странная особенность.

когда я создаю массив его опций (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

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

Gifts
29.07.2009, 11:56
Дикс Вопрос в том, что именно вы задаете, пример бы.

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

delux
30.07.2009, 00:48
дело в иссе скорее даже
какая версия?