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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: cURL: глюк или krivieruki.sys

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Dragon_Knight
Отправлено: 22 Июня, 2013 - 15:43:10
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012  
Откуда: г.Мытищи, МО


Помог: 0 раз(а)




Доброго времени суток.

Понадобилось получать заголовки из ответа сервера, и для этого решил использовать 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 ошибка.

В чём дело?
 
 Top
esterio
Отправлено: 22 Июня, 2013 - 15:55:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




как по вашему что такое 80 и 8000 и на каком висит веб сервер
 
 Top
Dragon_Knight
Отправлено: 22 Июня, 2013 - 15:58:23
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012  
Откуда: г.Мытищи, МО


Помог: 0 раз(а)




esterio, а cURL волнует на какой порт отправлять запрос, если в ответ приходить HTTP?
 
 Top
esterio
Отправлено: 22 Июня, 2013 - 16:07:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




а что такое тогда курл. смотрите если вы заказали пиццу в квартиру 21 то должно ли волновать курера номер квартиры и он отнесет заказ в 41 квартиру
 
 Top
Dragon_Knight
Отправлено: 22 Июня, 2013 - 16:12:00
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012  
Откуда: г.Мытищи, МО


Помог: 0 раз(а)




esterio, ахаах. Вы вот судите человека по кол-ву постов да?
Ладно, тогда сами смотрите и за рекламу ссылок отвечать будите Вы Радость

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

Воспользуйтесь telnet'ом и убедитесь что там HTTP.

(Отредактировано автором: 22 Июня, 2013 - 16:13:30)

 
 Top
esterio
Отправлено: 22 Июня, 2013 - 16:16:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




1. причем тут количество постов
2. вы ничего не писали про аудиотранслацию
 
 Top
Мелкий Супермодератор
Отправлено: 22 Июня, 2013 - 16:16:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Dragon_Knight пишет:
Воспользуйтесь telnet'ом и убедитесь что там HTTP.

Именно что, воспользуйтесь телнетом, отправьте HEAD-запрос. Что видите?
CURLOPT_NOBODY=>true использует HEAD вместо GET


-----
PostgreSQL DBA
 
 Top
Dragon_Knight
Отправлено: 22 Июня, 2013 - 16:19:26
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012  
Откуда: г.Мытищи, МО


Помог: 0 раз(а)




esterio, а это я и не должен был говорить, потому что мой вопрос был почему cURL не отправляет запрос на порт != 80. А Вы стали говорить что я окончательно глупый и оправляю запросы на рандомные порты и удивляюсь почему не работает..

Мелкий, ммм, так стоп. А если я укажу CURLOPT_NOBODY => False, то у меня php упадет по timeout'у, т.к. размер тела документа бесконечный.

(Отредактировано автором: 22 Июня, 2013 - 16:21:26)

 
 Top
esterio
Отправлено: 22 Июня, 2013 - 16:25:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




где вы видели от меня такой тон. и да поток юесконечен. на ум приходит только лимит времени в курле выставить
 
 Top
Dragon_Knight
Отправлено: 22 Июня, 2013 - 16:30:46
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012  
Откуда: г.Мытищи, МО


Помог: 0 раз(а)




esterio, Ваш пример с пицей... Ладно проехали. мир? Радость

А в курле есть лимит на размер документа? например выставить 1024 байта, думаю заголовки влезут.
Лимит времени - идея хорошая, но сервер иногда в ступор входит и на пару секунд подвивает..
 
 Top
Мелкий Супермодератор
Отправлено: 22 Июня, 2013 - 17:04:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Сдаётся мне, проще будет напрямую через сокет пинать.
Заодно получится аккуратнее прерываться по получении заголовков - всегда первый встречный двойной перевод строки.


-----
PostgreSQL DBA
 
 Top
Dragon_Knight
Отправлено: 22 Июня, 2013 - 17:11:24
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012  
Откуда: г.Мытищи, МО


Помог: 0 раз(а)




Мелкий, ууу.. сокеты ни разу не юзал.. Огорчение
 
 Top
esterio
Отправлено: 22 Июня, 2013 - 17:28:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




http://www.php.net/manual/en/soc...ets.examples.php
тут нескоько примеров.

П.С. щас с телефона. сложно написать пример самому
 
 Top
Dragon_Knight
Отправлено: 25 Июня, 2013 - 13:06:51
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Май 2012  
Откуда: г.Мытищи, МО


Помог: 0 раз(а)




С сокетами разобрался, всё отлично работает.

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

(Отредактировано автором: 25 Июня, 2013 - 13:07:12)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB