[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: fsockopen + fgets работает очень долго
VolCh
есть скрипт - с помощью fsockopen открывает соединение, шлет запрос POST HTTP/1.0 (XML API там), читает ответ от сервера через while ($str=fgets($fs,2000)) $respone.=$str; вроде все работает, но цикл завершается только через пару минут, хотя таймаут в fsockopen стоит 30 (но толком не понял на что он влияет, толи на всю работу, толи только на открытие), пробовал на разных хостингах результаты примерно одинаковые. Говорят, что другие приложения использующие этот API получают ответ в течении 5-10 секунд. Ответ сервера выглядит вполне завершенным, все XML теги закрыты, content-lenght совпадает

Куда рыть? curl на целевом сервере не стоит






Спустя 6 часов, 3 минуты, 15 секунд (4.04.2008 - 17:47) VolCh написал(а):
Модет не в тот раздел топик поместил? Переместите тогда, администрация, для начинающих, хотя еще помню времнеа, когда php3 новинокой был

Спустя 3 часа, 47 минут, 40 секунд (4.04.2008 - 21:35) M1cR0 написал(а):
Если нужно просто считать страницу и отпарсить ответ, лучше используй функцию file_get_contents() и им подобным

Спустя 1 час, 30 минут, 13 секунд (4.04.2008 - 23:05) VolCh написал(а):
Нет, там именно XML API, ждет POST запроса с "полем" xml и возвращает "text/xml", если коротко, то система on-line заказов на каботажные перевозки smile.gif

В принципе работа уже сдана, требовалось, чтобы работало - работает, но как-то неудобно, что такие тормоза. Тут мысля возникла, может такое быть, что IIS (в сигнатуре он, да и .asp вроде никто кроме него не юзает по дефолту) не посылает EOF, а fgets просто после последней реальной полученной строки отваливается по таймауту какому-то в пару минут? Может стоит по ($len==$content_lenght || eof($fs)) цикл прекращать? Проверить не могу, там подпись и все такое. Хотелось бы уже готовое решение выдать. Никто не сталкивался, что сервак (IIS) после выдачи контента eof не посылает? C апачем вроде проблем не было никогда

Спустя 10 месяцев, 5 дней, 18 часов, 39 минут, 18 секунд (10.02.2009 - 18:44) Guest написал(а):
попробуй послать connection close скриптом, который отвечает fsockopen-у
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.