Получение статус кода ответа сервера на POST запрос через CURL.

lorien

Новичок
Получение статус кода ответа сервера на POST запрос через CURL.

Скажите, как можно с помощью CURL получить код ответа на POST запрос? Т.е. мне не надо само тело ответа, интересуют только заголовки, вернее перая строка со статусом.

Почитал про http есть такая штука как HEAD ( CURLOPT_NOBODY ), но это ведь аналогично GET запросу, а мне надо передать POST данные.

-~{}~ 15.05.05 21:46:

Уточню вопрос. Мне понятно как получить заголовки вместе с телом ответа. А как их получить заголовки, не скачивая тело???
 

lorien

Новичок
Это всё здорово, конечно, только CURLOPT_NOBODY посылает HEAD HTTP запрос - я же написал. А мне нужно послать POST запрос и получить только заголовок ответа.
 

lorien

Новичок
HEAD запрос - это не POST запрос. Если я не прави приведи пример кода, который бы дал мне желаемое.
Вот код, который работает - получает заголовки + тело ответа. Что мне надо сделать, чтобы получать только заголовки?
Код:
$ch = curl_init($url);
	curl_setopt ($ch, CURLOPT_FAILONERROR, 0); //show error message
	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt ($ch, CURLOPT_VERBOSE, 1);
	curl_setopt ($ch, CURLOPT_HEADER, 1);
	curl_setopt ($ch, CURLOPT_TIMEOUT, 5);
	curl_setopt ($ch, CURLOPT_PROXY, $proxy[0]);
	curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
	curl_setopt($ch, CURLOPT_COOKIE, $cookies);
	if ($post_data) {
		curl_setopt($ch, CURLOPT_POST,1);
		curl_setopt($ch, CURLOPT_POSTFIELDS,$post_data);
	}
	$data = curl_exec($ch);
	curl_close($ch);
 

lorien

Новичок
У меня содаёцца впечатление, что я разговариваю с человеком, который сам не знает, про что говорит.
 

WeirD

Новичок
lorien

Поверть мне. Любую фразу, которую я пишу в этом форуме, я проверяю не один раз. Если тебе что-то не позволяет вставить одну строку в код и проверить его работу, то это уже не мои проблемы.

И заметь, я не слова не сказал про твои странные источники информации.
 

lorien

Новичок
С каких пор google.com, php.net и официальная документация по CURL стали странными? ;-)
Этот оператор ничего не даёт. Если его вставить сервер начинает выдавать ошибку 411 length required. Единственный способ избавицца от ошибки добавить в заголовки запроса Content-Length: 0. Если ты не заметил про CURLOPT_NOBODY я написал ещё в ПЕРВОМ посте. :-((
 

WeirD

Новичок
lorien

Да. Я был не прав. Приношу свои извинения.

Вариантов решения вижу два.
1) Через Range установить размер получаемо страницы в 0. Минус: Работает не со всеми серверами.

2) Испоьзовать не Curl, а сокеты. И читать из сокета результат до конца заголовка.
 

lorien

Новичок
Да про сокеты я знаю, просто не хотел до поры до времени заморачиваться на этом.
А за range, спасибо. Завтра почитаю про это.
 

Klaus

SEO Cthulhu
lorien,
а если принудить послать запрос POST опцией CURLOPT_CUSTOMREQUEST ?
 
Сверху