Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: cURL: глюк или krivieruki.sys
Форумы портала PHP.SU » » Работа с сетью » cURL: глюк или krivieruki.sys

Страниц (1): [1]
 

1. Dragon_Knight - 22 Июня, 2013 - 15:43:10 - перейти к сообщению
Доброго времени суток.

Понадобилось получать заголовки из ответа сервера, и для этого решил использовать cURL.
Казалось, всё просто:
PHP:
скопировать код в буфер обмена
  1. $curl = curl_init();
  2. curl_setopt($curl, CURLOPT_URL, 'http://site.ru/');
  3. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  4. curl_setopt($curl, CURLOPT_NOBODY, true);
  5. curl_setopt($curl, CURLOPT_HEADER, true);
  6. $out = curl_exec($curl);
  7. curl_close($curl);
  8.  
  9. echo $out;

НО не тут-то было. Если указать URL как "http://site.ru/", то всё ок, но если указать порт "http://site.ru:8000/", то в ответе будет 400 ошибка.

В чём дело?
2. esterio - 22 Июня, 2013 - 15:55:27 - перейти к сообщению
как по вашему что такое 80 и 8000 и на каком висит веб сервер
3. Dragon_Knight - 22 Июня, 2013 - 15:58:23 - перейти к сообщению
esterio, а cURL волнует на какой порт отправлять запрос, если в ответ приходить HTTP?
4. esterio - 22 Июня, 2013 - 16:07:01 - перейти к сообщению
а что такое тогда курл. смотрите если вы заказали пиццу в квартиру 21 то должно ли волновать курера номер квартиры и он отнесет заказ в 41 квартиру
5. Dragon_Knight - 22 Июня, 2013 - 16:12:00 - перейти к сообщению
esterio, ахаах. Вы вот судите человека по кол-ву постов да?
Ладно, тогда сами смотрите и за рекламу ссылок отвечать будите Вы Радость

Есть icecast2 сервер, который отдаёт поток HTT протоколом: http://server.freshmeradio.globalzone.su:8000/.
Есть сам поток: http://server[dot]freshmeradio[dot]globa[dot][dot][dot]agonsThought[dot]ogg
Задача: получить тип отдаваемого контента, указанного в заголовке.

Воспользуйтесь telnet'ом и убедитесь что там HTTP.
6. esterio - 22 Июня, 2013 - 16:16:06 - перейти к сообщению
1. причем тут количество постов
2. вы ничего не писали про аудиотранслацию
7. Мелкий - 22 Июня, 2013 - 16:16:53 - перейти к сообщению
Dragon_Knight пишет:
Воспользуйтесь telnet'ом и убедитесь что там HTTP.

Именно что, воспользуйтесь телнетом, отправьте HEAD-запрос. Что видите?
CURLOPT_NOBODY=>true использует HEAD вместо GET
8. Dragon_Knight - 22 Июня, 2013 - 16:19:26 - перейти к сообщению
esterio, а это я и не должен был говорить, потому что мой вопрос был почему cURL не отправляет запрос на порт != 80. А Вы стали говорить что я окончательно глупый и оправляю запросы на рандомные порты и удивляюсь почему не работает..

Мелкий, ммм, так стоп. А если я укажу CURLOPT_NOBODY => False, то у меня php упадет по timeout'у, т.к. размер тела документа бесконечный.
9. esterio - 22 Июня, 2013 - 16:25:15 - перейти к сообщению
где вы видели от меня такой тон. и да поток юесконечен. на ум приходит только лимит времени в курле выставить
10. Dragon_Knight - 22 Июня, 2013 - 16:30:46 - перейти к сообщению
esterio, Ваш пример с пицей... Ладно проехали. мир? Радость

А в курле есть лимит на размер документа? например выставить 1024 байта, думаю заголовки влезут.
Лимит времени - идея хорошая, но сервер иногда в ступор входит и на пару секунд подвивает..
11. Мелкий - 22 Июня, 2013 - 17:04:33 - перейти к сообщению
Сдаётся мне, проще будет напрямую через сокет пинать.
Заодно получится аккуратнее прерываться по получении заголовков - всегда первый встречный двойной перевод строки.
12. Dragon_Knight - 22 Июня, 2013 - 17:11:24 - перейти к сообщению
Мелкий, ууу.. сокеты ни разу не юзал.. Огорчение
13. esterio - 22 Июня, 2013 - 17:28:24 - перейти к сообщению
http://www.php.net/manual/en/soc...ets.examples.php
тут нескоько примеров.

П.С. щас с телефона. сложно написать пример самому
14. Dragon_Knight - 25 Июня, 2013 - 13:06:51 - перейти к сообщению
С сокетами разобрался, всё отлично работает.

Всем спасибо за помощь Радость
PS> Если нужно, могу выложить готовый код

 

Powered by ExBB FM 1.0 RC1