idHTTP

eclipse

Пользователь
Вопрос такого плана: как в idHTTP организовать докачку? знаю точно что это делается запросом Request..., но при этом перед скачкой нужно узнать есть ли докачка? Сперва проверяю докачку выкачивая допустим 5 Kb , а потом делаю саму докачку. Почему-то она идёт с самого начала файла а не от туда откуда установил в Request запросе. Но если просто делать докачку без распознавания есть ли докачка, тогда всё в порядке?
 

Mike22

Местный
eclipse, докачка и атрибут range требует наличия поддержки этих возможностей на обоих сторонах, и на клиенте и на сервере.
Если сервер не поддерживает range, то хоть запробуйтесь, он всё-равно вам будет отдавать файл с начала.
 

eclipse

Пользователь
Вы не понимаете! На сервере докачка есть , это проверено многоми прогами ... а range вы неизвестно откуда взяли

Я программирую в Delphi - там нету range!
 

eclipse

Пользователь
Я верю! абсолютно вас понимаю! но этот атрибут никак не выыставить в Delphi , точнее в Request! Если вы уж такой знаток так подскажте как быть
 

Mike22

Местный
Я верю! абсолютно вас понимаю! но этот атрибут никак не выыставить в Delphi , точнее в Request! Если вы уж такой знаток так подскажте как быть
Если в Делфи библиотека idHTTP не полностью поддерживает стандарт http, то откажитесь от этой библиотеки, возьмите другую.
Или самостоятельно запрос формируйте - для того чтобы одну строчку текста сформировать не нужно много усилий.
 

eclipse

Пользователь
Есть стандартные запросы с помощью библиотеки WinInet , но они вообще не ставятся в request! хотя они самые гибкие по настройке... с ними можно хотькак крутить... но вот установить позицию докачки трудно! В MDSN сказано что типо Вы ника не сможете установить докачку не узнав сперва размер ... - так вот размер узнать можно только методом internethttpquerryreques если не ошибаюсь... а если это делать так как сказано в MDSN httpqueerydata тогда возвращается только то что можно скачать за один запрос! фиг знает как быть!
 

Mike22

Местный
Не читайте вы ерунду всякую. Читайте документацию на сам протокол http и ищите в сети примеры реализаций того что вам нужно.

Вот, за 2 минуты нашёл -
http://www.delphisources.ru/pages/faq/base/get_file_size_before_download.html
http://www.delphisources.ru/pages/faq/base/download_with_download_again.html
разбирайтесь
 

eclipse

Пользователь
Я ещё раз повторяю это так сказать примеры для ламеров! ОНИ не работают так как надо!
 

eclipse

Пользователь
Это примерно то , что если просто в реестре запустить поиск... то процессор грузанётся на 50%, если это двухядерник... в виНде косяк! я понимаю! но есть ли радикальные выходы из этой ситуации! а грузить меня поисковиками не надо!

Хотя всё дело даже не в Delphi! все языки программирования используют WinInet... как вы не крутите! посмотрите исходники всех подобных компонентов.
 

Mike22

Местный
Хотя всё дело даже не в Delphi! все языки программирования используют WinInet... как вы не крутите! посмотрите исходники всех подобных компонентов.
Ну зачем вы такой бред пишите?
Язык программирования ничего не использует, это программист в зависимости от своей квалификации может что-то использовать.

Я вам в очередной раз повторю -
http request - это строчка обычного текста в сотню байт, формируйте её самостоятельно, работайте через сокеты а не через кривые библиотеки в которых нет поддержки нужных вам функций.
Или ищите нормальную библиотеку.
И, умоляю, - прекратите ссылаться на Windows, в Win-библиотеках отвратительная реализация сетевых протоколов.
Читайте документацию на сам протокол, а не пытайтесь найти решение на основе плохих инструментов.
 

eclipse

Пользователь
Так вот! если Вам известно то windows , а именно всё что связано с сетю стырино с Linux , поэтому биллу Гейтсу пытаются намылить рожу! ИСХОДЯ ИЗ ЭТОГО ... АЛГОРИТМЫ СЕТИ ПОСТРОЕНЫ НА ОДНОМ И ТОМ ЖЕ!... Посмотрите исходники! если Вы не разбираетесь между ParamSTR и 0 то не надо заявлять что программист всё решает!... Из Ваших слов следует только то, что нужно придумать что-то новое нежели существующие языки программирования! Тогда зачем придумывать велосипед! Всё дело в порядке запросов.
 

Mike22

Местный
eclipse, ну ахинею вы несёте.
При чём тут языки, если вы пытаетесь воспользоваться функцией из библиотеки, но у этой библиотеки нет поддержки нужных вам вещей. Инструмент которым вы пытаетесь воспользоваться не умеет делать то что вы хотите.
Возьмите другую библиотеку или откажитесь совсем от библиотек http и работайте с сокетами напрямую.
Вы понимаете о чём я говорю?
Вы разницу между библиотекой функций и языком программирования понимаете?

Про алгоритмы, исходники, про Linux и Гейтса коментировать не буду :) бред.

Посмотрите как, например, на Python докачка реализуется - http://code.activestate.com/recipes/83208-resuming-download-of-a-file/
 

eclipse

Пользователь
Сходство видите? Билиотеку исользую потому что там уже всё упрощено.. ибо нехрен изобретать велосипед!
 

Mike22

Местный
Чего же вы тогда совета просите?
Пользуйтесь упрощёнными библиотеками и получайте удовольствие :)
Только проблема в том, что эти библиотеки не могут вам помочь сделать то, что вы хотите.
 

eclipse

Пользователь
Прикинь это я начал этот вопрос!

Я повторяю! я уже грузил админов этого сайта ! не надо мне впаривать гугловские запросы!
 

Mike22

Местный
А eclipse говорил что у idHTTP нет возможности задать range. :)

Прикинь это я начал этот вопрос!

Я повторяю! я уже грузил админов этого сайта ! не надо мне впаривать гугловские запросы!
:)
Тогда разберитесь что вам нужно.

И хоть немножко повежливее будьте с теми кто вам пытается помочь и тратит на вас время.
 
Сверху