Вверх ↑
Этот топик читают: Гость
Ответов: 209
Рейтинг: 1
#1: 2014-04-04 18:35:56 ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2020-02-16 13:42:48
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#2: 2014-04-04 18:51:03 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-12 08:52:13
карма: 0

0
Ответов: 209
Рейтинг: 1
#3: 2014-04-04 18:55:27 ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2020-02-16 13:42:52
карма: 0

0
файлы: 1code_33349.txt [914B] [103]
Ответов: 4631
Рейтинг: 749
#4: 2014-04-04 18:59:20 ЛС | профиль | цитата
1) Да, сервер отправляет заголовок Content-Length, содержащий размер файла.

2) Компонент отправляет на серевер следующий текст:
GET /filename.txt HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Host: www.example.com
Cache-Control: no-cache
"GET" и "Host" зависят от введенного URL, User-Agent указывается в свойстве компонента.

Ответ сервера может выглядеть так
HTTP/1.1 200 OK
Date: Fri, 04 Apr 2014 14:50:55 GMT
Server: Apache/2.2.12 (Win32) DAV/2 mod_ssl/2.2.12 OpenSSL/0.9.8k mod_autoindex_color PHP/5.3.0 SVN/1.6.11 mod_perl/2.0.4 Perl/v5.10.0
X-Powered-By: PHP/5.3.0
Content-Length: 278
Connection: close
Content-Type: text/html
Ответ может отличаться в зависимости от настроек сервера и типа файла. Размер трафика является суммой приведенных текстов.
Также после приведенного ответа может ещё быть небольшая часть содержимого файла, но я не знаю сколько Windows успевает выкачать содержимого при получении заголовков. В общем случае это всё не превышает нескольких килобайт.

------------ Дoбавленo в 18.59:
Второй вариант на схеме предпочтительней
карма: 26

0
Ответов: 209
Рейтинг: 1
#5: 2014-04-05 11:21:38 ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2020-02-16 13:43:00
карма: 0

0
Ответов: 4631
Рейтинг: 749
#6: 2014-04-05 12:07:32 ЛС | профиль | цитата
Net2Com писал(а):
запросить размер url - ноль
Если посмотреть на ответ от rambler.ru, то увидим, что сервер не отправляет Content-Length:
HTTP/1.1 200 OK
Server: nginx/1.3.7
Date: Sat, 05 Apr 2014 07:54:42 GMT
Content-Type: text/html; charset=utf-8
Connection: close
Set-Cookie: last_visit=1396684482; Path=/
Cache-Control: private, no-cache, must-revalidate
Set-Cookie: proselytize=1; domain=.rambler.ru; path=/; expires=Wed, 30-Apr-14 23:55:55 GMT
Set-Cookie: ruid=vAsAAMK2P1M7FUl6AcNBAAB=; expires=Thu, 31-Dec-37 23:55:55 GMT; domain=.rambler.ru; path=/
P3P: CP="NON DSP NID ADMa DEVa TAIa PSAa PSDa OUR IND UNI COM NAV"
Set-Cookie: dv=gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:1396684482; path=/; expires=Thu, 31-Dec-37 23:55:55 GMT
Set-Cookie: dvr=gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:1396684482; domain=.rambler.ru; path=/; expires=Thu, 31-Dec-37 23:55:55 GMT
Set-Cookie: lv=1396684482; path=/; expires=Thu, 31-Dec-37 23:55:55 GMT
Set-Cookie: lvr=1396684482; domain=.rambler.ru; path=/; expires=Thu, 31-Dec-37 23:55:55 GMT
Set-Cookie: ruid=AQAAAMK2P1P3tNEYAUteFAB=; expires=Thu, 31-Dec-37 23:55:55 GMT; domain=.rambler.ru; path=/
P3P: CP="NON DSP NID ADMa DEVa TAIa PSAa PSDa OUR IND UNI COM NAV"
В этом случае определить длину ответа можно только полностью выкачав содержимое, что ты и делаешь. Другого способа здесь нет.

Net2Com писал(а):
Каким образом перестраховаться в схеме от возникновения этой ошибки
Нужно внимательно перелопатить компонент HTTP_Get и найти причину.
карма: 26

1
Голосовали:Net2Com
Ответов: 209
Рейтинг: 1
#7: 2014-04-05 12:25:16 ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2020-02-16 13:43:08
карма: 0

0
файлы: 1code_33350.txt [466B] [89]
Гость
Ответов: 17029
Рейтинг: 0
#8: 2014-04-06 12:52:57 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-12 08:52:32
карма: 0

0
Ответов: 4631
Рейтинг: 749
#9: 2014-04-06 13:49:41 ЛС | профиль | цитата
broadband-188-255-95-198. писал(а):
при wait = true крэш на точке do download
Не вижу.

Теперь понятно, почему
Net2Com писал(а):
раз 15 нажать на кнопку по схеме, то после восстановления соединения получаем
При Wait=False (по умолчанию) doDownload создает параллельный поток. Вот только несколько последовательных вызовов doDownload опять создают по потоку, что не предусмотрено логикой компонента. Нужно поставить контроль.
карма: 26

2
Голосовали:Konst, Net2Com
Ответов: 209
Рейтинг: 1
#10: 2014-04-06 23:16:49 ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2020-02-16 13:43:14
карма: 0

0
Ответов: 4631
Рейтинг: 749
#11: 2014-04-07 11:14:53 ЛС | профиль | цитата
Зависит от задач. Если просто нужно, чтобы работало - можно остановиться на наиболее простом и стабильном варианте. Если нужен именно FPC - обновить стоит, и проверить, будет ли работать. Что в общем не исключает наличия ошибок в компоненте.

Net2Com писал(а):
как не знаю
Скачать в соответствующей теме инсталлятор и пакет.


------------ Дoбавленo в 11.14:
Здесь на 2-й странице есть замена компоненту Thread.
Компоненты с параллельными потоками могут работать стабильнее и на старом FPC. Правда, для этого их нужно переделать.
карма: 26

0
Ответов: 209
Рейтинг: 1
#12: 2014-04-07 14:52:04 ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2020-02-16 13:43:19
карма: 0

0
12
Сообщение
...
Прикрепленные файлы
(файлы не залиты)